首页 > 其他分享 >快速排序

快速排序

时间:2022-11-09 18:57:13浏览次数:45  
标签:aa end int 复杂度 start 排序 快速

快速排序

1.复杂度

时间复杂度:O(nlogn),最高可达O(n²)
空间复杂度:O(nlogn)

2.代码实现

2.1递归实现

#include<iostream>
using namespace std;
void swap(int &a,int &b){
    int temp=a;
    a=b;
    b=temp;
}
void quicksort(int aa[],int start,int end){
    if(start>=end)return ;
    int l=start,r=end;
    int p=aa[l];
    while(l<r){
        while(r>l&&aa[r]>=p)r--;
        while(r>l&&aa[l]<=p)l++;
        swap(aa[r],aa[l]);
    }
    swap(aa[l],aa[start]);
    quicksort(aa,start,l-1);
    quicksort(aa,l+1,end);
}
int main(){
    int aa[]={5,4,3,2,1};
    quicksort(aa,0,4);
    for(int a:aa)cout<<a<<" ";
}

标签:aa,end,int,复杂度,start,排序,快速
From: https://www.cnblogs.com/bjtu-QYC/p/16874814.html

相关文章