zoukankan      html  css  js  c++  java
  • 快速排序_c++

    快速排序_c++


    GitHub

    文解

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

    • 取数组的第一个数,确定其在整个数组中的位置.
    • 以刚刚的数值所确定的位置经数组分为两个部分.
    • 再分别对两个部分进行以上两步操作.
    • 重复以上三步,到整个数组有序位置.

    图解

    代码

    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;
    }
    
  • 相关阅读:
    MFC绘制直角坐标系
    mfc画波形函数
    ciscn_2019_ne_5
    ciscn_2019_n_5
    [ZJCTF 2019]NiZhuanSiWei
    ciscn_2019_n_1
    pwn-100
    2014提高组笔试错题
    BZOJ3211: 花神游历各国
    主席树模板
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/6564626.html
Copyright © 2011-2022 走看看