當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript实现快速排序
生活随笔
收集整理的這篇文章主要介紹了
JavaScript实现快速排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
快速排序是各大IT公司面試必考算法題之一,正好在百度前端技術(shù)學(xué)院(IFE)做任務(wù)時(shí)遇到一道題,要求可視化一個(gè)排序算法的計(jì)算過程,我第一時(shí)間就想到了用JS手寫一個(gè)快排算法,正好作為練手。
// 快速排序 function quickSort(array,low,high) {if (high <= low) return;// 選擇第一個(gè)元素作為基準(zhǔn)元素var pivot = array[low], i=low,j=high;// 將所有比pivot小的元素放到其左邊,大的放到右邊while (i < j) {while (i < j && array[j] > pivot) --j;array[i] = array[j];while (i < j && array[i] <= pivot) ++i;array[j] = array[i];}array[i] = pivot;// 遞歸對左右兩邊的子數(shù)組排序arguments.callee(array,low,i-1);arguments.callee(array,i+1,high); }這個(gè)排序算法思路很簡單,但有一點(diǎn)細(xì)節(jié)要注意:中間那兩個(gè)判斷i、j移動(dòng)的條件里,與pivot作比較時(shí),至少要有一個(gè)>=(或<=)符號(hào),否則,當(dāng)待排序數(shù)組里有兩個(gè)相同的元素時(shí),兩個(gè)while會(huì)卡在那里互相賦值,造成無限循環(huán)。
轉(zhuǎn)載于:https://www.cnblogs.com/leegent/p/5322391.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript实现快速排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用pe安装服务器系统安装系统教程视频
- 下一篇: 脚本录制软件python 按键精灵 tc