标题:[求助]计数排序算法错误了?找不到
取消只看楼主
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
结帖率:100%
 问题点数:0 回复次数:6 
[求助]计数排序算法错误了?找不到


#include "stdio.h"
#define N 5
#define n 5
#define k 7
int jspx(int a[n],int b[n]);
int main()
{

int e[N];
int s[N];
int i;
printf("请输入五个数:\n");
for(i=1;i<=N;i++)
scanf("%d",&e[i]);
printf("输入的数为:\n");
for(i=1;i<=N;i++)
printf("%d ",e[i]);
printf("\n");
jspx(e,s);
printf("排好序的数为:\n");
for(i=1;i<=N;i++)
printf("%d ",e[i]);

return 0;
}
int jspx(int a[n],int b[n])
{

int c[k];
int i,j;
for(i=1;i<=k;i++)
{
c[i]=0;
}
for(j=1;j<=n;j++)
{
c[a[j]]+=1;
}
for(i=2;i<=k;i++)
{
c[i]=c[i]+c[i-1];
}
for(j=n;j>=1;j--)
{
b[c[a[j]]]=a[j];
c[a[j]]=c[a[j]]-1;
}
return 0;
}

[此贴子已经被作者于2007-10-30 20:44:24编辑过]

搜索更多相关主题的帖子: 算法 int 计数 define jspx 
2007-10-30 20:42
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
得分:0 

不用比较两个数 。直接计算出该数的位置然后把这个数放到这个位置吧


qq:304742297
2007-10-30 21:13
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
得分:0 
回复:(chmlqw)........... for(j=1;j
那是计算出数组中有每个元素的个数
这好像只能用于较小的数排序吧

qq:304742297
2007-10-30 21:21
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
得分:0 
回复:(yangzhifu)同上!我觉得你的目的上什么都没说...

这也是我今天刚学到的 计数排序算法啊。
算法应该对的 。 但是我的程序就是调不通啊


qq:304742297
2007-10-30 21:25
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
得分:0 


qq:304742297
2007-10-30 21:43
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
得分:0 
回复:(zxc1998)可以说你的理解基本正确,根据你的程...

不行啊。
当我输入1 2 3 5 6时tc直接退出 没有任何显示


qq:304742297
2007-11-01 12:31
jxt598598
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-6-13
得分:0 
回复:(chmlqw)回复:(zxc1998)可以说你的理解基本...

这是我定义的小了。你可以定义大一点的。只是占内存更大而已


qq:304742297
2007-11-01 12:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-182093-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.514100 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved