c++中参考C语言的qsort函数实现一个一个能对任意数据类型(包括结构体)的数组进行排序的函数 10

悬赏只是小小敬意,估计大神不缺这个。... 悬赏只是小小敬意,估计大神不缺这个。 展开
 我来答
yr78044367
2015-06-07 · TA获得超过534个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:94.3万
展开全部
#include <stdio.h>
void qusort(int s[], int start, int end) /*自定义函数qusort()*/
{
int i, j; /*定义变量为基本整型*/
i = start; /*将每组首个元素赋给i*/
j = end; /*将每组末尾元素赋给j*/
s[0] = s[start]; /*设置基准值*/
while (i < j)
{
while (i < j && s[0] < s[j])
j--; /*位置左移*/
if (i < j)
{
s[i] = s[j]; /*将s[j]放到s[i]的位置上*/
i++; /*位置右移*/
}
while (i < j && s[i] <= s[0])
i++; /*位置右移*/
if (i < j)
{
s[j] = s[i]; /*将大于基准值的s[j]放到s[i]位置*/
j--; /*位置右移*/
}
}
s[i] = s[0]; /*将基准值放入指定位置*/
if (start < i)
qusort(s, start, j - 1); /*对分割出的部分递归调用函数qusort()*/
if (i < end)
qusort(s, j + 1, end);
}
main()
{
int a[11], i; /*定义数组及变量为基本整型*/
printf("please input numbers:\n");
for (i = 1; i <= 10; i++)
scanf("%d", &a[i]); /*从键盘中输入10个要进行排序的数*/
qusort(a, 1, 10); /*调用qusort()函数进行排序*/
printf("the sorted numbers:\n");
for (i = 1; i <= 10; i++)
printf("%5d", a[i]); /*输出排好序的数组*/
}
颂LYLlyl
2015-06-03
知道答主
回答量:8
采纳率:0%
帮助的人:2.9万
展开全部
algorithm库函数中的sort函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hellfara
2015-05-29 · TA获得超过200个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:241万
展开全部
看下stl 算法中对应的sort函数,应该能满足你的要求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式