快排
1 void quicksort(int *p, int left, int right) 2 { 3 if(right <= left) return; 4 int flag,i,j,temp; 5 flag = p[left]; 6 i = left; 7 j = right; 8 while(i <= j) 9 { 10 11 do j--; 12 while(p[j] > flag && j>=left); 13 do i++; 14 while(p[i] < flag && i<=right); 15 if(i<=j) 16 { 17 temp = p[i]; 18 p[i] = p[j]; 19 p[j] = temp; 20 } 21 else break; 22 } 23 p[left] = p[j]; 24 p[j] = flag; 25 quicksort(p,left,j); 26 27 28 quicksort(p,j+1,right); 29 }