關于排序函數的參數
<script type="text/javascript">
? function sortNum(a,b) {
? return a - b;
//升序,如降序,把“a - b”該成“b - a”
}
var myarr = new Array("80","16","50","6","100","1");
? document.write(myarr + "<br>");
? document.write(myarr.sort(sortNum));
</script>
傳遞的實參是數值型字符串,怎么也可以使用減法?如果是其它類型的數據呢?比如字母型字符串,布爾類型等
2017-07-25
有點不明白調用的原理啊,第三次為什么是16和50 比較了呢?為什么不接著80和6比較呢???這個順序是怎么來的
2017-07-21
在函數里面加了一段 ? document.write("(a-b)="+(a-b)+"</br>");終于看明白了
(a-b)=64----第一次調用函數:a是80,b是16,結果為64>0,因此交換位置:16,80,50,6,100,1
(a-b)=30----第二次調用函數:a是80,b是50,結果為30>0,因此交換位置:16,50,80,6,100,1
(a-b)=-34----第三次調用函數:a是16,b是50,結果為-34<0,因此不交換位置:16,50,80,6,100,1
(a-b)=74----第四次調用函數:a是80,b是6,結果為74>0,因此交換位置:16,50,6,80,100,1
(a-b)=44----第五次調用函數:a是50,b是6,結果為44>0,因此交換位置:16,6,50,80,100,1
(a-b)=10----第六次調用函數:a是16,b是6,結果為10>0,因此交換位置:6,16,50,80,100,1
(a-b)=-20----第七次調用函數:a是80,b是100,結果為-20<0,因此不交換位置:6,16,50,80,100,1
(a-b)=99----第八次調用函數:a是100,b是1,結果為99>0,因此交換位置:6,16,50,80,1,100
(a-b)=79----第九次調用函數:a是80,b是1,結果為79>0,因此交換位置:6,16,50,1,80,100
(a-b)=49----第十次調用函數:a是50,b是1,結果為49>0,因此交換位置:6,16,1,50,80,100
(a-b)=15----第十一次調用函數:a是16,b是1,結果為15>0,因此交換位置:6,1,16,50,80,100
(a-b)=5----第十二次調用函數:a是6,b是1,結果為5>0,因此交換位置:1,6,16,50,80,100
1,6,16,50,80,100
應該是一種優(yōu)化版的冒泡排序法
2017-07-20