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循環結束時,整個數組就按照從小到大的順序排好了。