快速排序

来源:互联网 发布:python flask上传图片 编辑:程序博客网 时间:2024/04/29 08:55
复杂度:O(nlbn)
//快速排序:分治思想,边分边排//划分方法:以最右边的为枢轴元素进行划分,枢轴元素的左边的元素都比它小,右边的元素都比它大 #include<iostream>using namespace std;int a[1000];//算法的复杂度计算要熟练掌握 void sort(int left,int right){if(right>left){int i=left-1;int j=left;while(i<right&&j<right){if(a[j]<a[right]) {i++;swap(a[i],a[j]);j++;}else{j++;} }if(j==right){swap(a[j],a[i+1]);}sort(0,i);sort(i+2,right);}}int main(){int n;cin>>n;for(int i=0;i<n;i++){cin>>a[i];}sort(0,n-1);for(int i=0;i<n;i++){cout<<a[i];}} 

0 0