作者: Y_Y 时间: 2013-10-26 16:11
是不是里面的for循环的条件: for(int y = x+1; y < arr.length-1; y++) 不该减一!作者: 1961993790 时间: 2013-10-26 16:24
正确代码如下:
class Demo {
public static void sort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = x + 1; y < arr.length; y++) {
int num = 0;
if (arr[x] > arr[y]) {
num = arr[y];
arr[y] = arr[x];
arr[x] = num;
}
}
}
}
public static void array(int[] arr) {
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x != arr.length - 1)
System.out.print(arr[x] + ",");
else
System.out.println(arr[x] + "]");
}
}
public static void main(String[] args) {
int[] arr = { 3, 1, 4, 7, 5, 2, 6 };
array(arr);
sort(arr);
array(arr);
}
}
你的错误之处为:for(int y = x+1; y < arr.length-1; y++)
这里的y表示要判断的次数,举个例子,如果n个数进行比较,比较的
次数应该为:n-1;
希望对您有帮助。作者: 完美恋爱 时间: 2013-10-26 16:32