#include "function.h"
void swap(int *p, int *r)
{
int temp;
temp = *p;
*p = *r;
*r = temp;
return;
}
int partition(int *a, int p, int r)
{
if (NULL == a)
{
return 0;
}
int i, j, x;
x = a[r];
i = p - 1;
for (j = p; j <= r - 1; j++)
{
if (a[j] <= x)
{
i++;
swap(&a[i], &a[j]);
}
}
swap(&a[++i], &a[r]);
return i;
}
int rand_partition(int *a, int p, int r)
{
int i;
srand((unsigned)time(NULL));
i = p + rand()%(r - p + 1);
swap(&a[r], &a[i]);
return partition(a, p, r);
}
void rand_quicksort(int *a, int p, int r)
{
if (NULL == a)
{
return;
}
int q;
if (p < r)
{
q = rand_partition(a, p, r);
rand_quicksort(a, p, q - 1);
rand_quicksort(a, q + 1, r);
}
return;
}
普通快速排序随机快速排序算法实验
需积分: 11 199 浏览量
2016-01-16
20:22:34
上传
评论
收藏 397KB RAR 举报
zhangwu1241
- 粉丝: 10
- 资源: 6