js sort()函数

 都知道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 ]

猜你喜欢

转载自blog.csdn.net/zSY_snake/article/details/83508208