c语言实现快速排序

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:50:53
谁有c语言实现快速排序的方法,最好是有两种方法。一种是用递归进行,另一个是用循环实现。第二种如果做不出就算了,谢谢
最好写上注释,要简单点的,我是新手。。

如果装了VC的运行库源代码就自己看吧。
VC\crt\src\qsort.c
有足够的注释了。

//如果新手。。
//建议假设一个数组,在纸上写出来每一步的效果,数可以少,比如4,5个
//但是请你每一步都写出来。帮助你理解

#include <stdio.h>

#define N 10

void Quick_Sort(int q[], int left, int right);//快速排序_大到小

int main()
{
int a[N];
int n=N;
int i;
printf("输入要进行排序的%d个数:\n", n);

for (i=0; i<N; i++)
{
scanf("%d", &a[i]);
}

printf("元素为:");
Display(a,N-1);

Quick_Sort(a, 0, N-1);
Display(a,N-1);

return 0;
}

void Display(int d[], int right)
{
for (int i=0; i<=right; i++)
{
printf("%4d", d[i]);
}

printf("\n\n");
}

void Quick_Sort(int a[], int left, int right)
{
int i=left;
int j=right;
int temp;
int s;
temp = a[left];//选数组首元素为轴