精華區beta ZooStudy 關於我們 聯絡資訊
嗯…我的解法如下 想了半天終於出來… 我覺得這有時候是要靠靈感的 #include<iostream> using namespace std; void quicksort(int[],int,int); int partition(int[],int,int); int main() { const int arraysize=10; int array[arraysize]={37,2,6,4,89,8,10,12,68,45}; cout<<"origin: "; for(int a=0;a<arraysize;a++) cout<<array[a]<<" "; quicksort(array,0,arraysize-1); cout<<"\n"<<"after quicksort: "; for(int b=0;b<arraysize;b++) cout<<array[b]<<" "; return 0; } void quicksort(int a[],int start,int end) { int p=partition(a,start,end); if(p>start) { quicksort(a,start,p-1); } if(p<end) { quicksort(a,p+1,end); } } int partition(int b[],int i,int f) { for(int round=1;b[i]!=b[f];round++) { if(round%2==1) { for(;b[i]<b[f];f--) ; int hold=b[i]; b[i]=b[f]; b[f]=hold; } if(round%2==0) { for(;b[i]<b[f];i++) ; int hold=b[i]; b[i]=b[f]; b[f]=hold; } } return i; } -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 163.30.184.194