【发布时间】:2017-08-16 10:08:46
【问题描述】:
我正在学习 R 中的基本算法。我想使用 for 循环创建冒泡排序算法。
x <- c(20,31,8,46,19)
for (i in 1:length(x)){
if (x[i] > x[i+1]){
temp <- x[i]
x[i] <- x[i+1]
x[i+1] <- temp
cat(x[i],"")
}
else cat (x[i],"")
}
我认为在这个特定的向量中,排序应该在三个“回合”中进行。
第一个应该给出结果:20 8 31 19 46
第二:8 20 19 31 46
3rd:8 19 20 31 46(正确的一个)
这个循环在第一轮运行,除了打印最后一个元素。
我也不知道如何计算出其他“转弯”。我预测它与另一个 for 循环有关,但我不知道如何实现它。
【问题讨论】:
-
一些在 R 中实现冒泡排序的参考资料。Bubble sort in R 和 Bubble sort using R language?