【发布时间】:2018-10-03 14:22:29
【问题描述】:
这是 InsertionSort 的代码,但为什么它不运行?也就是说,它不会按升序对数字进行排序。
class A {
public static void main(String[] args) {
int [] n = {3,2,1};
for (int j = 2; j < n.length; j++) {
int key = n[j];
int i = j - 1;
while (i > 0 && n[i] > key) {
n[i + 1] = n[i];
i = i-1;
}
n[i + 1] = key;
}
for(int k: n)
System.out.print(k);
}
}
【问题讨论】:
-
是时候使用调试器了。
-
算法书上的插入排序是伪代码,调试器跟它有什么关系?
-
调试器与它有关。当我们试图帮助找出代码中的问题时,您认为我们会怎么做?盯着它,希望我们有一个尤里卡时刻?运行我们脑海中的代码?我们都只是用水做饭。我们将您的代码粘贴到我们最喜欢的 IDE 中,并使用调试器运行它以查看发生了什么。你也可以这样做。我强烈建议您了解如何(以及何时)使用调试器。
标签: java algorithm optimization