小白關(guān)于數(shù)組排序的疑問(wèn)
這里紅線部分,我不明白在調(diào)用sort 進(jìn)行排序時(shí),具體是怎么工作的呢?本來(lái)sortNum()就是一個(gè)函數(shù),現(xiàn)在指定sort 排序采用sortNum()進(jìn)行。sortNum為兩個(gè)參數(shù),而數(shù)組中有六個(gè)元素啊??然后怎么弄?希望知道的大神能指點(diǎn)迷津,感激不盡
這里紅線部分,我不明白在調(diào)用sort 進(jìn)行排序時(shí),具體是怎么工作的呢?本來(lái)sortNum()就是一個(gè)函數(shù),現(xiàn)在指定sort 排序采用sortNum()進(jìn)行。sortNum為兩個(gè)參數(shù),而數(shù)組中有六個(gè)元素啊??然后怎么弄?希望知道的大神能指點(diǎn)迷津,感激不盡
2017-07-03
舉報(bào)
2017-07-13
function sortNum1(t,d) {
? ? return d-t
? ?}
僅僅只是根據(jù)函數(shù)兩個(gè)參數(shù)優(yōu)先出現(xiàn)的順序進(jìn)行判斷,括號(hào)里面先出現(xiàn)t,再出現(xiàn)d,如果你想按升序排就return t-d;
如果你想降序排那就return d-t;而且還只能對(duì)數(shù)字排序,對(duì)字符串還不能用這樣的方法。
2017-07-21
在函數(shù)里面加了一段 ? document.write("(a-b)="+(a-b)+"</br>");終于看明白了
(a-b)=64----第一次調(diào)用函數(shù):a是80,b是16,結(jié)果為64>0,因此交換位置:16,80,50,6,100,1
(a-b)=30----第二次調(diào)用函數(shù):a是80,b是50,結(jié)果為30>0,因此交換位置:16,50,80,6,100,1
(a-b)=-34----第三次調(diào)用函數(shù):a是16,b是50,結(jié)果為-34<0,因此不交換位置:16,50,80,6,100,1
(a-b)=74----第四次調(diào)用函數(shù):a是80,b是6,結(jié)果為74>0,因此交換位置:16,50,6,80,100,1
(a-b)=44----第五次調(diào)用函數(shù):a是50,b是6,結(jié)果為44>0,因此交換位置:16,6,50,80,100,1
(a-b)=10----第六次調(diào)用函數(shù):a是16,b是6,結(jié)果為10>0,因此交換位置:6,16,50,80,100,1
(a-b)=-20----第七次調(diào)用函數(shù):a是80,b是100,結(jié)果為-20<0,因此不交換位置:6,16,50,80,100,1
(a-b)=99----第八次調(diào)用函數(shù):a是100,b是1,結(jié)果為99>0,因此交換位置:6,16,50,80,1,100
(a-b)=79----第九次調(diào)用函數(shù):a是80,b是1,結(jié)果為79>0,因此交換位置:6,16,50,1,80,100
(a-b)=49----第十次調(diào)用函數(shù):a是50,b是1,結(jié)果為49>0,因此交換位置:6,16,1,50,80,100
(a-b)=15----第十一次調(diào)用函數(shù):a是16,b是1,結(jié)果為15>0,因此交換位置:6,1,16,50,80,100
(a-b)=5----第十二次調(diào)用函數(shù):a是6,b是1,結(jié)果為5>0,因此交換位置:1,6,16,50,80,100
1,6,16,50,80,100
應(yīng)該是一種優(yōu)化版的冒泡排序法
2017-07-03
利用sortNum()函數(shù)依次對(duì)數(shù)組中的兩元素比較來(lái)判斷是否交換位置。