快速排序(Quick sort)用法简析
时间:2014-07-14 14:45 来源: 我爱IT技术网 作者:山风
在资料序列(Data sequence)中随机找一元素为定界点(Pivot),然后让序列的其他元素与定界点比较,比定界点小的元素放左边,大的放右边。在定界点左边子序列和右边子序列,再以相同的方式处理,直到整个序列排序完毕。
范例代码:
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 50 51 52 53 |
/** * Program name: quick_sort.c * Description: 快速排序法 * Created date: 2012/08/28 */ #include <stdio.h> #define n 5 void quickSort(); int main(void){ int arr[n]={101,4,70,83,12}; int i; quickSort(arr,0,n-1); printf("[快速排序結果]: "); for(i=0;i<n;i++) printf("%d,",arr[i]); printf("\n"); system("pause"); } void quickSort(int *arr, int p, int q){ int i,j,k,t; if(p < q){ i = p; j = q + 1; k = arr[p]; do{ do{ i++; }while(arr[i] < k); do{ j--; }while(arr[j] > k); if(i <= j){ t = arr[i]; arr[i] = arr[j]; arr[j] = t; } }while(i <= j); t = arr[p]; arr[p] = arr[j]; arr[j] = t; quickSort(arr,p,j-1); quickSort(arr,j+1,q); } } |
执行结果

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
