把一个数组按照从小到大的顺序排列


arr = [ 13,15,6,2,12,41,38,32 ];
var e = 0;
     for ( var i = 0 ; i < arr.length ; i++ ){
           for ( var j = 0 ; j < arr.length ; j++ ){
              if ( arr [ j ] > arr [ j +1 ]){
                    arr [ j ] = arr [ j ] ^ arr [ j + 1 ];
                    arr [ j + 1 ] = arr [ j ] ^ arr [ j + 1 ];
                    arr [ j ] = arr [ j ] ^ arr [ j + 1 ];
                 };
            };
        };
console.log ( arr );

利用双for循环,当 i = 0 时,第二个for循环会依次比较相邻的两个元素,

如果前面一个元素大于后面一个元素就会把前面一个元素跟后面一个元素对调,

对调的方式有很多总,这里利用的是亦或 ( ^ ) 。

当第二个for循环第一次循环结束后,整个数组的最大元素就会被移动到最后一位。

然后第一个for循环循环第二次,然后再进行一次排序,就会让数组第二大的元素排到

倒数第二取。如此循环下去当第一个for循环结束时,整个数组就按照从小到大的顺序排好了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM