用C语言编写,快速排序
的有关信息介绍如下:在visual C++ 6.0上,用C语言编写,快速排序
打开visual C++ 6.0-文件-新建-文件-C++ Source File
定义变量:
#include
void qusort(int s[], int start, int end) /*自定义函数qusort()*/
{
int i, j; /*定义变量为基本整型*/
给变量赋初值:
i = start; /*将每组首个元素赋给i*/
j = end; /*将每组末尾元素赋给j*/
s = s[start]; /*设置基准值*/
比较大小:
while (i < j)
{
while (i < j && s < s[j])
j--; /*位置左移*/
if (i < j)
{
s[i] = s[j]; /*将s[j]放到s[i]的位置上*/
i++; /*位置右移*/
}
while (i < j && s[i] <= s)
i++; /*位置右移*/
if (i < j)
{
s[j] = s[i]; /*将大于基准值的s[j]放到s[i]位置*/
j--; /*位置右移*/
}
}
调用函数:
s[i] = s; /*将基准值放入指定位置*/
if (start < i)
qusort(s, start, j - 1); /*对分割出的部分递归调用函数qusort()*/
if (i < end)
qusort(s, j + 1, end);
输入10个要进行排序的数:
void main()
{
int a, i; /*定义数组及变量为基本整型*/
printf("请输入10个数:\n");
for (i = 1; i <= 10; i++)
scanf("%d", &a[i]); /*从键盘中输入10个要进行排序的数*/
qusort(a, 1, 10); /*调用qusort()函数进行排序*/
输出排好序的数组:
printf("排序后的顺序是:\n");
for (i = 1; i <= 10; i++)
printf("%5d", a[i]); /*输出排好序的数组*/
printf("\n");
完整的源代码:
#include
void qusort(int s[], int start, int end) /*自定义函数qusort()*/
{
int i, j; /*定义变量为基本整型*/
i = start; /*将每组首个元素赋给i*/
j = end; /*将每组末尾元素赋给j*/
s = s[start]; /*设置基准值*/
while (i < j)
{
while (i < j && s < s[j])
j--; /*位置左移*/
if (i < j)
{
s[i] = s[j]; /*将s[j]放到s[i]的位置上*/
i++; /*位置右移*/
}
while (i < j && s[i] <= s)
i++; /*位置右移*/
if (i < j)
{
s[j] = s[i]; /*将大于基准值的s[j]放到s[i]位置*/
j--; /*位置右移*/
}
}
s[i] = s; /*将基准值放入指定位置*/
if (start < i)
qusort(s, start, j - 1); /*对分割出的部分递归调用函数qusort()*/
if (i < end)
qusort(s, j + 1, end);
}
void main()
{
int a, i; /*定义数组及变量为基本整型*/
printf("请输入10个数:\n");
for (i = 1; i <= 10; i++)
scanf("%d", &a[i]); /*从键盘中输入10个要进行排序的数*/
qusort(a, 1, 10); /*调用qusort()函数进行排序*/
printf("排序后的顺序是:\n");
for (i = 1; i <= 10; i++)
printf("%5d", a[i]); /*输出排好序的数组*/
printf("\n");
}