首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

奇偶排序有关问题

2012-01-14 
奇偶排序问题奇偶排序的思路是在数组中重复两趟扫描。第一趟扫描所有的数据项对,a[j]和a[j+1],j是奇数(j1,

奇偶排序问题
奇偶排序的思路是在数组中重复两趟扫描。第一趟扫描所有的数据项对,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个元素.那些加啊减啊是什么意思,能不能讲一下,举个例子~~十分感谢`

------解决方案--------------------


用不着这么麻烦的
[解决办法]
其中的加减就是实现了不用第三个元素的换位,例x=3,y=4,不用第三个变量把x变成4 y变成3 y=x+y; x=y-x; y=y-x;
[解决办法]
mark

热点排行