js快速排序算法
算法:
1.先從數(shù)列中取出一個(gè)數(shù)作為基準(zhǔn)數(shù)。
2.分區(qū)過程,將比這個(gè)數(shù)大的數(shù)全放到它的右邊,小于或等于它的數(shù)全放到它的左邊。
3.再對左右區(qū)間重復(fù)第二步,直到各區(qū)間只有一個(gè)數(shù)。
動(dòng)畫演示:
?點(diǎn)我查看效果
實(shí)現(xiàn)代碼:
function quickSort(array) {function sort(start, end) {var low = start;var hight = end - 1;var flag = array[start];if((end-start)<=1) return array// low和hight重合時(shí)完成一次排序while (low < hight) {//從右往左找,直到找到一個(gè)小于基準(zhǔn)的數(shù)時(shí)放入low所在的位置,然后跳出while (hight>low) {if (array[hight] < flag) {array[low] = array[hight];low ;//左側(cè)前進(jìn)一步break;};hight--}//從左往右找,直到找到一個(gè)大于基準(zhǔn)的數(shù),放入hight所在的位置,然后跳出while(low < hight) {if (array[low] > flag) {array[hight] = array[low];hight -- //右側(cè)前進(jìn)一步break;}low }}array[low] = flag;sort(0, low);sort(low 1, end);}sort(0, array.length);return array;}?
更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com
總結(jié)
- 上一篇: es6严格模式需要注意的地方
- 下一篇: 判断js中数据类型 的最短代码