日期:2014-05-20  浏览次数:20660 次

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

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