Quicksort
Posted tyxmax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Quicksort相关的知识,希望对你有一定的参考价值。
快速排序 也叫做分区排序 时间复杂度O(n*logn) 不稳定
分区排序,使得左侧子序列中的元素都小于基准元素,右侧子序列中的元素都大于等于基准元素
1 #include<iostream> 2 using namespace std; 3 int Paritition(int (&a)[5],int low,int high) 4 int pivotpos=low; 5 int pivot=a[low];//基准元素 6 for(int i=low+1;i<=high;i++)//一个一个比较 7 if(a[i]<pivot) 8 pivotpos++; 9 if(pivotpos!=i) 10 int temp=a[i]; 11 a[i]=a[pivotpos]; 12 a[pivotpos]=temp; 13 14 15 16 a[low]=a[pivotpos]; 17 a[pivotpos]=pivot; 18 return pivotpos; 19 20 void Quicksort(int (&a)[5],int left,int right) 21 if(left<right) 22 int pivotpos=Paritition(a,left,right);//排序并获得基准元素该在的位置下标 23 Quicksort(a,left,pivotpos-1); 24 Quicksort(a,pivotpos+1,right); 25 26 27 int main() 28 int a[5]=9,8,7,6,5; 29 Quicksort(a,0,4); 30 for(int i=0;i<5;i++) cout<<a[i]<<endl; 31 return 0; 32
以上是关于Quicksort的主要内容,如果未能解决你的问题,请参考以下文章