1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include<stdio.h> #define N 10 void quicksort(int a[],int low,int high); int split(int a[],int low,int high); int main(void) { int a[N],i; printf("Enter %d numbers to be sorted : ",N); for(i=0;i<N;i++) scanf("%d",&a[i]); quicksort(a,0,N-1); printf(" In sorted order : "); for(i = 0;i< N;i++) printf("%d ",a[i]); printf("n"); return 0; } void quicksort(int a[],int low,int high) { int middle; if(low>=high) return; middle = split(a,low,high); quicksort(a,low,middle-1); quicksort(a,middle+1,high); } int split(int a[],int low,int high) { int part_element = a[low]; for(;;){ while (low < high &&part_element <= a[high]) high --; if(low>=high) break; a[low++]=a[high]; while (low < high && a[low] <= part_element) low ++; <span style="font-size:0px; color:#ff0000;"><a href="https://www.man-wax.com/">壯陽藥</a> </span> if(low >= high) break; a[high] = a[low]; } a[high] = part_element; return high; } |