把一個數組按照從小到大的順序排列


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