急求C语言的快速排序算法设计

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:07:40
就是输入5个数进行排序。。用快速排序方法。。。最好也可以分别显示列出每一趟排序的结果。。。
不用太复杂。。只要突显算法就行了。。是算法设计的课程作业~~急求~~谢谢
可能我说得不详细吧
界面显示是:
----------------------------
请输入5个数字:
第一趟排序结果:
第二趟排序结果:



最后排序结果:
------------------------
不用太复杂的,太完美。。只要易懂实现了就行了,谢谢~~

怎么有错误的。。麻烦。。写D注释。。谢谢~~

#include <stdio.h>

int Quick_Sort(int* data, int left, int right)
{
if(data == NULL) return 0;

int i = left, j = right;
int tmp = data[(left+right)/2];//寻找枢轴
do{
while(data[i] < tmp && i < right)
i++;
while(data[j] > tmp && j > left)
j--;

if(i<=j)
{
int t = data[i];
data[i] = data[j];
data[j] = t;

i++;
j--;
}
}while(i<=j);

static int count = 0;
count ++;
printf("第 %d 趟:", count);
for(int ttt = 0; ttt < 5; ttt++)
{
printf("%d ", data[ttt]);
}
printf("\n");

if(left < j)
Quick_Sort(data, left, j);
if(i < right)
Quick_Sort(data, i, right);
return 1;
}

void main(void)
{
int pp[5] = {3, 8, 4, 2, 10};
Quick_Sort(pp, 0, 4);
}

#includ