排序 快速排序

Posted uncklesam7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序 快速排序相关的知识,希望对你有一定的参考价值。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;
int n,a[101];
void qs(int l,int r){
    int i,j,p,mid;
    i=l;j=r;mid=a[(l+r)/2];
    do{
        while(a[i]<mid) i++;
        while(a[j]>mid) j--;
        if(i<=j){
            p=a[i];
            a[i]=a[j];
            a[j]=p;
            i++;
            j--;
        }
        
    }while(i<=j);
    if(j>l) qs(l,j);
    if(i<r) qs(i,r);
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
     cin>>a[i];
    qs(1,n);
    for(int i=1;i<=n;i++)
     cout<<" "<<a[i];
    
    return 0;
    
}

快速排序就是进行多次按照一个支点(一般选择中间位置的数字)分成两组进行排序,将小于该支点的放到左边,大于支点的放入右边这个行为,直到排好所有元素。

快排是不稳定的排序,时间复杂度一般认为是nlog2n,是最常用的内部排序程序。

以上是关于排序 快速排序的主要内容,如果未能解决你的问题,请参考以下文章

C语言快速排序代码

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

交换排序(冒泡排序快速排序的算法思想及代码实现)

列举你所知道的排序方法,请写出快速排序的伪代码

[leetcode]排序算法(冒泡排序,选择排序,插入排序,快速排序,计数排序)