答案 0 :(得分:1)
您的问题非常简单:您在代码中经常增加 k !
含义:你已经用k循环了;所以你得到了:
for (int k=0; k < a.length; k++) { // dont use hardcoded "9" here btw!
然后你有
循环体中k ++ 再次。你根本不需要这样做!
含义:你的k增长速度超过预期。但是当k达到9时你的循环停止;你不处理数组中的所有元素!
加号:插入排序不适用于迭代数组一次! 你必须继续迭代,直到所有元素都在他们的位置!你真的想学习/思考更多关于这个算法。 你,而不是我们!
如上所述,不要对数组使用硬编码限制。你曾经说过你的数组应该包含10个元素。从那以后,你应该只使用a.length!此外:只使用单字母名称作为循环计数器等。 &#34;&#34;对于数组来说是一个非常坏的名字;你怎么称呼它&#34;数字&#34;例如。