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的主要内容,如果未能解决你的问题,请参考以下文章