快速排序_c++

快速排序_c++


GitHubc++

文解

快速排序正如其名,是一種排序速度較快的排序算法.
其核心思想:git

  • 取數組的第一個數,肯定其在整個數組中的位置.
  • 以剛剛的數值所肯定的位置經數組分爲兩個部分.
  • 再分別對兩個部分進行以上兩步操做.
  • 重複以上三步,到整個數組有序位置.

圖解

代碼

void fastArray(short * pArray, short low, short height) {
    short pos;
    
    if (low < height) {
        pos = serchPos(pArray, low, height);
        fastArray(pArray, low, pos - 1);
        fastArray(pArray, pos + 1, height);
    }
    
}

short serchPos(short * pArray, short low, short height) {
    short val = pArray[low];
    
    while (low < height) {
        while (low < height && pArray[height] > val) {
            height --;
        }
        pArray[low] = pArray[height];
        
        while (low < height && pArray[low] < val) {
            low ++;
        }
        pArray[height] = pArray[low];
    }
    pArray[low] = val;
    return low;
}
相關文章
相關標籤/搜索