void exchange(int &a, int &b)
{
if(a == b) return; //防止&a,&b指向同一个地址;那样结果会错误。
a ^= b;
b ^= a;
a ^= b;
}作者: gulup 时间: 2013-8-23 22:54
楼上的代码。。。不是JAVA的吧?作者: 熊纪达 时间: 2013-8-23 22:56
仅对于该代码来说,应该 是x=y=2的这次交换,导致arr【2】=0作者: 杨增坤 时间: 2013-8-24 09:43 本帖最后由 forward 于 2013-8-24 09:45 编辑
我感觉是:
public static void maopao(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
int temp = 0;
for (int y = 0; y < arr.length - x - 1; y++) {
if (arr[y] < arr[y + 1]) {
temp = y + 1; zhihuan(arr, temp, y);
}
}