奇偶排序问题
奇偶排序的思路是在数组中重复两趟扫描。第一趟扫描所有的数据项对,a[j]和a[j+1],j是奇数(j = 1,3,5……)。如果它们的关键字的次序颠倒,就交换它们。第二趟扫描所有的偶数数据项进行同样的操作(j = 2,4,6……)。重复进行这样的两趟的排序直到数组全部有序。
public void sort(int[] n){
for (int i = 0; i < n.length; i += 2){
for (int j = 0; j < n.length - 1; j += 2){
if (n[j] > n[j + 1]){
n[j] = n[j + 1] + n[j]; ???
n[j + 1] = n[j] - n[j + 1]; ???
n[j] = n[j] - n[j + 1]; ???这些是什么意思~~!
}
}
for (int j = 1; j < n.length - 1; j += 2){
if (n[j] > n[j + 1]){
n[j] = n[j + 1] + n[j];
n[j + 1] = n[j] - n[j + 1];
n[j] = n[j] - n[j + 1];
}
}
}
}
这个是我在网上看到的, 但是我实在想不通是怎么实现的, if (n[j] > n[j + 1])
这个j+1 是n[j]的下一个元素吗~,如 .2 , 5, 3 , 8 , 15,j=3, j+1 是不是等于四啊,第4个元素.那些加啊减啊是什么意思,能不能讲一下,举个例子~~十分感谢`
------解决方案--------------------