javascript快速排序算法詳解
"快速排序"的思想很簡(jiǎn)單,整個(gè)排序過(guò)程只需要三步:
(1)在數(shù)據(jù)集之中,找一個(gè)基準(zhǔn)點(diǎn)
?。?)建立兩個(gè)數(shù)組,分別存儲(chǔ)左邊和右邊的數(shù)組
?。?)利用遞歸進(jìn)行下次比較
看一個(gè)demo:http://jsdo.it/norahiko/oxIy/fullscreen(網(wǎng)頁(yè)打開(kāi)可能較慢,慢慢等待吧)
<script type="text/javascript"> function quickSort(arr){ if(arr.length<=1){ return arr;//如果數(shù)組只有一個(gè)數(shù),就直接返回; } var num = Math.floor(arr.length/2);//找到中間數(shù)的索引值,如果是浮點(diǎn)數(shù),則向下取整 var numValue = arr.splice(num,1);//找到中間數(shù)的值 var left = []; var right = []; for(var i=0;i<arr.length;i++){ if(arr[i]<numValue){ left.push(arr[i]);//基準(zhǔn)點(diǎn)的左邊的數(shù)傳到左邊數(shù)組 } else{ right.push(arr[i]);//基準(zhǔn)點(diǎn)的右邊的數(shù)傳到右邊數(shù)組 } } return quickSort(left).concat([numValue],quickSort(right));//遞歸不斷重復(fù)比較 } alert(quickSort([32,45,37,16,2,87]));//彈出“2,16,32,37,45,87” </script>
相關(guān)文章
JavaScript不刷新實(shí)現(xiàn)瀏覽器的前進(jìn)后退功能
這篇文章主要介紹了JavaScript不刷新實(shí)現(xiàn)瀏覽器的前進(jìn)后退功能,本文給出了HTML5解決方案、老舊瀏覽器的寫(xiě)法等方法,需要的朋友可以參考下2014-11-11js關(guān)閉父窗口時(shí)關(guān)閉子窗口
js關(guān)閉父窗口時(shí)關(guān)閉子窗口的實(shí)例,需要的朋友可以參考一下2013-04-04簡(jiǎn)單談?wù)刯avascript高級(jí)特性
看過(guò)很多關(guān)于js高級(jí)特性介紹的文章,本文是個(gè)人感覺(jué)最通俗易懂的,這里分享給大家,希望大家能夠喜歡2019-09-09document.selection.createRange方法與實(shí)例
document.selection.createRange() 根據(jù)當(dāng)前文字選擇返回 TextRange 對(duì)象,或根據(jù)控件選擇返回 ControlRange 對(duì)象2006-10-10js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12