qq_慕瓜5327221
2020-02-18 23:53
看了很多人的回答,千篇一律无从理解,自己研究了一下算法原理终于明白了。
首先sort函数会将myArray[0],myArray[1],赋值给a,b
然后sortMethod函数会进行a,b的整数数值比较(假设我们需要的是升序即a-b),且return a-b;
sort函数根据sorMethod返回的值 -1,0,1,分别将a放在b的前、不动、后,三个位置。
a值不变,b值分别为myArray[2],myArray[3]……myArray[myArray.length-1],每一次都进行上述三个步骤。
a被分别赋值数组中的每个元素,进行上述四个步骤。
有说-1就调换吗,1就调换吗,有说会自动载入函数吗,啊?
显示不出来啊
标准库sort():函数并非只是普通的快速排序,除了对普通的快速排序进行优化,它还结合了插入排序和堆排序。根据不同的数量级别以及不同情况,能自动选用合适的排序方法。当数据量较大时采用快速排序,分段递归。一旦分段后的数据量小于某个阀值,为避免递归调用带来过大的额外负荷,便会改用插入排序。而如果递归层次过深,有出现最坏情况的倾向,还会改用堆排序。
个人理解:
return 1 说明 a - b>0 ;a要放在b的后面
return -1 说明 a-b <0 ; a要放在b的前面
return 0 说明 a- b = 0 ; a和b的值相等,两者不发生调换
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题
回答 1
回答 2