奇偶排序问题

cwjieNo5 2007-09-20 09:31:18
奇偶排序的思路是在数组中重复两趟扫描。第一趟扫描所有的数据项对,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个元素.那些加啊减啊是什么意思,能不能讲一下,举个例子~~十分感谢`
...全文
287 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_V_a 2007-09-20
  • 打赏
  • 举报
回复
其中的加减就是实现了不用第三个元素的换位,例x=3,y=4,不用第三个变量把x变成4 y变成3 y=x+y; x=y-x; y=y-x;
duoduo6153 2007-09-20
  • 打赏
  • 举报
回复
用不着这么麻烦的
yuzhlhua 2007-09-20
  • 打赏
  • 举报
回复
mark

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧