码迷,mamicode.com
首页 > 其他好文 > 详细

Quicksort

时间:2019-07-03 14:06:59      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:str   i++   大于   space   namespace   turn   amp   out   时间复杂度   

快速排序  也叫做分区排序  时间复杂度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

标签:str   i++   大于   space   namespace   turn   amp   out   时间复杂度   

原文地址:https://www.cnblogs.com/TYXmax/p/11125710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!