我正在尝试学习算法并在R中实现它们。这是我尝试插入排序:
TRUE
然而,这给了我错误
insertion.sort <- function(A){
i <- 0
j <- 0
key <- 0
for (j in 2:length(A)){
key <- A[j]
i <- j-1
if (is.null(i)){return('i is null')}
if (is.null(A[i])){return('A[i] is null')}
while ((i > 0) & (A[i] > key)){
A[i+1] <- A[i]
i <- i-1
}
A[i+1] <- key
}
return(A)
}
做的时候
Error in while ((i > 0) & (A[i] > key)) { : argument is of length zero
我不明白为什么。我甚至尝试适当地构建变量:
insertion.sort(c(4,2,1))
这显然给了我一个条件,而不是一个错误。