#include
#include
#include
#define max_len 5
void generate_arr(int r[], int rLen);
void Qsort(int r[], int l, int h);
int main()
{
int i;
int r[max_len];
generate_arr(r, max_len); //使用方式
Qsort(r,0,max_len-1); //调用快速排序
for(i=0; i<max_len; i++) {
printf("%d, ", r[i]);
}
printf("\n");
return 0;
}
/**
- 生成随机整数序列
- r数组用于存储随机序列
-
rLen表示随机序列的长度
*/
void generate_arr(int r[], int rLen)
{
int i;
srand(1);
for(i=0; i<rLen; i++)
{
r[i] = rand();}
}
void Qsort(int r[], int l, int h)
{
int i, j, x;
int p=0,k=1;
if (l {
i = l;
j = h;
x =r[i];
while (i {
while(i = x)
{j--;
p++;
} /* 从右向左找第一个小于x的数 /
if(i < j)
{ r[i++] = r[j];
k=k+1;
}
while(i < j && r[i] <= x)
{ i++;
p++;
} / 从左向右找第一个大于x的数 /
if(i < j)
{ r[j--] = r[i];
k=k+1;
}
}
r[i]=x;printf("%s%d","compare:",p);
printf("%s%d","exchange:",k);
Qsort(r, l, i-1); / 递归调用 */
Qsort(r, i+1, h);
}return;
}