都知道sort()可以用来排序,但他具体的过程呢?
看下面例子:
var arr = [1,5,3,7,3,1];
console.log(arr.sort(function(a,b){
console.log(arr)
console.log('____________')
console.log(a,b);
return a-b
}))
输出结果:
[ 1, 5, 3, 7, 3, 1 ]
____________ 1-5为负顺序不变
1 5
[ 1, 5, 3, 7, 3, 1 ]
____________ 5-3为正,前一个数(即5)换到后一位
5 3
[ 1, 5, 5, 7, 3, 1 ]
____________ 然后比较1,3为负顺序不变,所以3处于了1后面一位
1 3
[ 1, 3, 5, 7, 3, 1 ]
____________ 继续从第三四位开始,即5,7,顺序不变
5 7
[ 1, 3, 5, 7, 3, 1 ]
____________ 四五位7,3,前一个数置后,可以理解为两个数互换位置后,不过置前的数尚未最终 确定位置,故仍 为原来数字,然后再将三四位比较,以此类推向前比较,直至顺序不必 颠倒,则继续之前的比较(即比较五六 位)
7 3
[ 1, 3, 5, 7, 7, 1 ]
____________
5 3
[ 1, 3, 5, 5, 7, 1 ]
____________
3 3
[ 1, 3, 3, 5, 7, 1 ]
____________
7 1
[ 1, 3, 3, 5, 7, 7 ]
____________
5 1
[ 1, 3, 3, 5, 5, 7 ]
____________
3 1
[ 1, 3, 3, 3, 5, 7 ]
____________
3 1
[ 1, 3, 3, 3, 5, 7 ]
____________
1 1
[ 1, 1, 3, 3, 5, 7 ]