• 【快速排序】


    1. 写一个数组,第一个数作为基准X

    2. 指针i,指向左边,j指向右边。

    3. 从j开始,找到小于X的数,放在a[i],也就是,如果a[j]> X, j--; a[i++]=a[j];

    4. 现在,i已经向右挪动了一个。从i开始,向右找到大于X的数,放在a[j],也就是, 如果a[i]<X, i++; a[j--]=a[i];

    5. 重复2-4,一直到i==j,这时候,a[i]=a[j]的左边都小于X,右边都大于X。令a[i]=X;

    6. 递归调用

    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    
    void quickSort(int a[], int l, int r){
        if (l < r)
        {
            int i = l, j = r;
            int x = a[l];//挖出来第一个坑
            while (i < j){
                while (i<j && a[j] >= x)
                    j--;
                if (i<j)
                    a[i++] = a[j];
    
                while (i < j && a[i] < x)
                    i++;
                if (i<j)
                    a[j--] = a[i];
            }
            a[i] = x;
    
            quickSort(a, l, i - 1);
            quickSort(a, i+1, r);
        }
    }
    int main(){
        int data[] = { 5, 4, 2, 1, 3, 8,11,9,10 };
    
        quickSort(data, 0, 8);
        for (int i = 0; i < 9;i++)
            cout << data[i] << endl;
        system("pause");
        return 0;
    }

     

    上图来自:http://blog.csdn.net/wuxinyicomeon/article/details/5996675

  • 相关阅读:
    golang通知协程退出
    Linux Centos7下安装Elasticsearch
    es
    Laravel 别名 Facades的用法
    SVN使用时遇到的小问题
    http 重定向到 https
    Git-版本回退
    selenium---上传文件(非input标签)
    selenium---生成BeautifulReport报告
    windows搭建ngnix图片服务器
  • 原文地址:https://www.cnblogs.com/xy123001/p/6597184.html
Copyright © 2020-2023  润新知