1. 程式人生 > >js快速排序算法

js快速排序算法

數列 pan var 排序 flag span while quick 算法

算法:

1.先從數列中取出一個數作為基準數。

2.分區過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。

3.再對左右區間重復第二步,直到各區間只有一個數。

動畫演示:

    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重合時完成一次排序 while (low < hight) { //從右往左找,直到找到一個小於基準的數時放入low所在的位置,然後跳出 while (hight>low) { if (array[hight] < flag) { array[low] = array[hight]; low++;//左側前進一步
break; }; hight-- } //從左往右找,直到找到一個大於基準的數,放入hight所在的位置,然後跳出 while(low < hight) { if (array[low] > flag) { array[hight] = array[low]; hight
-- //右側前進一步 break; } low++ } } array[low] = flag; sort(0, low); sort(low + 1, end); } sort(0, array.length); return array; }

js快速排序算法