你这样写用 a[i] 跟 a[j] 比较,并且一旦发现 a[i] 与 a[j] 需要交换就立即交换,不能保证实现完全排序。
我在用你的代码进行单步调试的时候发现以下情况:
d == 1 时,数组的最初状态为:2 1 0 3 4 7 6 5 8 9
此时 i == 1, j == 0; 交换 a[0] 与 a[1]
1 2 0 3 4 7 6 5 8 9
此时 i == 2, j == 1; 交换 a[2] 与 a[1]
1 0 2 3 4 7 6 5 8 9
此时 i == 2, j == 0; 不必交换
之后,0 再也没有改变位置的机会了