sort(sortMethod);原理
看了很多人的回答,千篇一律無從理解,自己研究了一下算法原理終于明白了。
首先sort函數(shù)會(huì)將myArray[0],myArray[1],賦值給a,b
然后sortMethod函數(shù)會(huì)進(jìn)行a,b的整數(shù)數(shù)值比較(假設(shè)我們需要的是升序即a-b),且return a-b;
sort函數(shù)根據(jù)sorMethod返回的值 -1,0,1,分別將a放在b的前、不動(dòng)、后,三個(gè)位置。
a值不變,b值分別為myArray[2],myArray[3]……myArray[myArray.length-1],每一次都進(jìn)行上述三個(gè)步驟。
a被分別賦值數(shù)組中的每個(gè)元素,進(jìn)行上述四個(gè)步驟。
2020-10-09
有說-1就調(diào)換嗎,1就調(diào)換嗎,有說會(huì)自動(dòng)載入函數(shù)嗎,啊?
2020-03-17
顯示不出來啊
標(biāo)準(zhǔn)庫(kù)sort():函數(shù)并非只是普通的快速排序,除了對(duì)普通的快速排序進(jìn)行優(yōu)化,它還結(jié)合了插入排序和堆排序。根據(jù)不同的數(shù)量級(jí)別以及不同情況,能自動(dòng)選用合適的排序方法。當(dāng)數(shù)據(jù)量較大時(shí)采用快速排序,分段遞歸。一旦分段后的數(shù)據(jù)量小于某個(gè)閥值,為避免遞歸調(diào)用帶來過大的額外負(fù)荷,便會(huì)改用插入排序。而如果遞歸層次過深,有出現(xiàn)最壞情況的傾向,還會(huì)改用堆排序。
2020-02-21
個(gè)人理解:
return 1? ? ? 說明 a - b>0? ;a要放在b的后面
return? -1? ? 說明 a-b <0? ?; a要放在b的前面
return? 0? ? ?說明? a- b? = 0? ;? ?a和b的值相等,兩者不發(fā)生調(diào)換??