• //快速排序



    //快速排序
    #include "stdafx.h"
    using namespace std;
    #include<vector>
    #include<string>

    void quickaont(int a[], int l, int n);

    int main()
    {
        int aa[] = { 1, 5, 7, 6, 2, 3 };
        //Solution sou;
        //sou.bubbleSort(aa, 6);
        quickaont(aa, 0, 5);
        return 1;
    }


    void quickaont(int a[], int left, int right)
    {
        //l代表基准数的位置  n代表数组的长度
        if (left<right)
        {
            int i = left, j = right, key = a[left];
            while (i < j)
            {
                while (i<j && a[j] >= key)//从右向左找第一个小于key的值
                    j--;
                if (i<j)
                {
                    a[i] = a[j]; //把key的坑填上
                }

                while (i<j && a[i]<key)//从左向右找第一个大于key的值
                    i++; //++是因为要找下一个key

                if (i<j)
                {
                    a[j] = a[i]; //把上一个坑填上
                }
            }
            //i == j  这里说明重合了
            a[i] = key;
            quickaont(a, left, i - 1); // 递归调用  
            quickaont(a, i + 1, right);
        }
    }

    天天向上
  • 相关阅读:
    MySQL的备份
    Linux下MySQL安装及配置
    MySQL的优化
    MySQL的基本操作
    python文件操作练习之文件备份
    文件操作练习之统计目录大小
    SQLite
    PyMySQL模块
    python语法练习题之九九乘法表
    类装饰器
  • 原文地址:https://www.cnblogs.com/hg07/p/12741380.html
Copyright © 2020-2023  润新知