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

    template <class T>
    static void quickSort(T * pArray, int low, int high)
    {
        if(low >= high)
            return;
    
        int remberlow = low;
        int remberhigh = high;
    
      //原理以第一位的值为标准,将比它小的值都挪到他左边,比它大的值都挪到右边
    //将开始位置腾出,值由base保存,并且base为基准值 T base = pArray[low]; while(low < high) {
         //从右向左找,找到比base小的数,挪到low的位置(之前腾出),现在high位置被腾出,且此位置必定在base的右边
    while(low < high) { if(pArray[high] < base) { pArray[low] = pArray[high]; low++; break; } high--; }
         //从左向右找,找出比base大的值,挪入high的位置(上面腾出),此时low的位置被腾出
    while(low < high) { if(pArray[low] > base) { pArray[high] = pArray[low]; high--; break; } low++; } }
      //最后low必定等于high,且属于腾出位,将之前保存的base放入即可,此时base左边全部比之小,右边全部比之大或相等 pArray[low]
    = base;
      //递归完成整个快速排序 quickSort(pArray, remberlow, low
    - 1); quickSort(pArray, low + 1, remberhigh); }
  • 相关阅读:
    Docker GitLab镜像部署
    Kubernetes集群部署之三ETCD集群部署
    Kubernetes集群部署之二CA证书制作
    Kubernetes集群部署之一系统环境初始化
    docker开源仓库Harbor部署笔记
    git分支
    git高清技能图
    vue+uwsgi+nginx部署路飞学城
    git基础
    git安装与初始化
  • 原文地址:https://www.cnblogs.com/hewei2012/p/2743282.html
Copyright © 2011-2022 走看看