R中的插入排序算法
insertion sort algorithm in R
我是编程新手,我正在尝试学习算法并在 R 中实现它们。这是我对插入排序的尝试:
# insertion sort algorithm
inserionsort_function <- function(A){
for (j in 2:length(A)) {
key = A[j]
# insert A[j] into sorted sequence A[1,...,j-1]
i = j - 1
while (i > 0 & A[j] > key) {
A[(i + 1)] = A[i]
i = i - 1
}
A[(i + 1)] = key
}
}
inserionsort_function(c(5, 2, 4, 6, 1, 3))
my code run without any error but the output of my function is not true
您的代码至少有 4 个问题,1 个小问题和 3 个大问题:
1) 名称中有错别字,您的意思可能是 insertionsort_function
(这是不必要的冗长——为什么不只是 insertionsort
?)
2) 你什么都returning。如果您想 return 原始数组的排序副本,请将 A
本身作为函数的最后一行。 R return 是函数定义中的最后一个表达式。
3) A[j] > key
应该是 A[i] > key
4) &
(用于向量)应替换为&&
(用于逻辑条件)。
进行这些更改会产生:
insertionsort_function <- function(A){
for (j in 2:length(A)) {
key = A[j]
# insert A[j] into sorted sequence A[1,...,j-1]
i = j - 1
while (i > 0 && A[i] > key) {
A[(i + 1)] = A[i]
i = i - 1
}
A[(i + 1)] = key
}
A
}
例如,
> insertionsort_function(c(5, 2, 4, 6, 1, 3))
[1] 1 2 3 4 5 6
我不相信 R 是学习编程绝对基础知识的好语言。如果你确实想专门学习 R 编程,我会推荐一本明确使用 R 来教授编程的书。例如,我发现 Hands-On Programming with R 一书是一个很好的起点。这是一本快速读物,教授 R 环境中编程的基础知识。
我是编程新手,我正在尝试学习算法并在 R 中实现它们。这是我对插入排序的尝试:
# insertion sort algorithm
inserionsort_function <- function(A){
for (j in 2:length(A)) {
key = A[j]
# insert A[j] into sorted sequence A[1,...,j-1]
i = j - 1
while (i > 0 & A[j] > key) {
A[(i + 1)] = A[i]
i = i - 1
}
A[(i + 1)] = key
}
}
inserionsort_function(c(5, 2, 4, 6, 1, 3))
my code run without any error but the output of my function is not true
您的代码至少有 4 个问题,1 个小问题和 3 个大问题:
1) 名称中有错别字,您的意思可能是 insertionsort_function
(这是不必要的冗长——为什么不只是 insertionsort
?)
2) 你什么都returning。如果您想 return 原始数组的排序副本,请将 A
本身作为函数的最后一行。 R return 是函数定义中的最后一个表达式。
3) A[j] > key
应该是 A[i] > key
4) &
(用于向量)应替换为&&
(用于逻辑条件)。
进行这些更改会产生:
insertionsort_function <- function(A){
for (j in 2:length(A)) {
key = A[j]
# insert A[j] into sorted sequence A[1,...,j-1]
i = j - 1
while (i > 0 && A[i] > key) {
A[(i + 1)] = A[i]
i = i - 1
}
A[(i + 1)] = key
}
A
}
例如,
> insertionsort_function(c(5, 2, 4, 6, 1, 3))
[1] 1 2 3 4 5 6
我不相信 R 是学习编程绝对基础知识的好语言。如果你确实想专门学习 R 编程,我会推荐一本明确使用 R 来教授编程的书。例如,我发现 Hands-On Programming with R 一书是一个很好的起点。这是一本快速读物,教授 R 环境中编程的基础知识。