快速排序随机化版本
2014-05-10 22:15
465 查看
#include <stdio.h> #include <stdlib.h> #include <time.h> void quickSort(int *, int, int); int partition(int *, int, int); void exchange(int *, int *); int main() { int A[10] = {2,3,6,9,80,5,4,10,12,1}; int i; quickSort(A,0,9); for (i = 0; i < 10; i++) { printf("%d ", A[i]); } printf("\n"); system("pause"); return 0; } void quickSort(int a[], int p, int r) { int q = 0; if (p < r) { q = partition(a, p, r); quickSort(a, p, q - 1); quickSort(a, q + 1, r); } } int partition(int a[], int p, int r) { int key, i, j; int q; srand((unsigned)time(NULL)); q = rand()%(r - p + 1) + p; exchange(&a[q],&a[r]); key = a[r]; for (i = p, j = p; j < r; j++) { if (a[j] <= key) { exchange(&a[i], &a[j]); i++; } } exchange(&a[i], &a[r]); return i; } void exchange(int *p, int *r) { int temp; temp = *p; *p = *r; *r = temp; }
相关文章推荐
- 算法导论 第2版 7.3 快速排序随机化版本
- 每日编程3之快速排序随机化版本
- 快速排序的随机化版本
- 快速排序的随机化版本
- 快速排序之随机化版本(7)
- 快速排序随机化版本
- 快速排序的随机化版本代码
- CLRS 7.3快速排序的随机化版本
- 《算法导论》笔记 第7章 7.3快速排序的随机化版本
- 《算法导论》笔记 第7章 7.3快速排序的随机化版本
- 第七章快速排序之“快速排序的随机化版本RANDOM-QUICKSORT”
- 算法导论7.3快速排序的随机化版本
- 快速排序学习2(随机化版本)
- 算法实践篇-快速排序-随机化版本
- 经典算法--快速排序的随机化版本
- 排序-快速排序-基本-随机化快速排序
- 快速排序与二分查找算法Javascript版本
- 第七章快速排序之“快速排序Hoare版本HOARE-QUICKSORT”(思考题7-1)
- 随机化快速排序
- 快速排序(递归版本)