快速排序,快速排序演算法

來源:互聯網
上載者:User

快速排序,快速排序演算法

#include<stdio.h>#include<algorithm>using namespace std;void InsertionSort(int a[],int N){int j,p,tmp;for(p=1;p<N;p++){//1-N-1趟目標tmp=a[p];for(j=p;j>0 && a[j-1]>tmp;j--){a[j]=a[j-1];}a[j]=tmp;}}int median3(int a[],int left,int right){int mid=(left+right)/2;if(a[left]>a[mid]) swap(a[left],a[mid]);if(a[left]>a[right]) swap(a[left],a[right]);if(a[mid]>a[right]) swap(a[mid],a[right]);swap(a[mid],a[right-1]);return a[right-1];}const int cutoff=3;void Qsort(int a[],int left,int right){int pivot,i,j;//左小右if(left+cutoff<=right){//三數取中pivot=median3(a,left,right);i=left;j=right-1;//分割for(;;){while(a[++i]<pivot){}while(a[--j]>pivot){}if(i<j)swap(a[i],a[j]);elsebreak;}//換回軸樞swap(a[i],a[right-1]);Qsort(a,left,i-1);Qsort(a,i+1,right);}elseInsertionSort(a+left,right-left+1);}void main(){int a[13]={13,12,11,10,9,8,7,6,5,4,3,2,1};Qsort(a,0,12);return ;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.