- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int partion(int a[], int p, int r)
- {
- srand((unsigned)time(NULL));
- int e = rand()%(r-p+1)+p;
- int tmp = a[e];
- a[e] = a[r];
- a[r] = tmp;
- int x = a[r];
- int i, j;
- i = p;
- for (j=p; j<r; j++)
- {
- if (a[j] <= x)
- {
- tmp = a[i];
- a[i] = a[j];
- a[j] = tmp;
- i ++;
- }
- }
- tmp = a[r];
- a[r] = a[i];
- a[i] = tmp;
- return i;
- }
- void QuickSort(int a[], int p, int r)
- {
- if (p < r)
- {
- int q = partion(a, p, r);
- QuickSort(a, p, q-1);
- QuickSort(a, q+1, r);
- }
- }
- int main()
- {
- int a[] = {1,2,3,-1,5,-9,10,33,0};
- QuickSort(a, 0, 8);
- for (int i=0; i<9; i++)
- {
- printf("%d\t", a[i]);
- }
- return 0;
- }
快速排序的简单实现
最新推荐文章于 2024-07-25 23:47:46 发布
1256

被折叠的 条评论
为什么被折叠?



