| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1089 人关注过本帖
标题:数字排序中数据元素比较方法,出了问题,请高手赐教
只看楼主 加入收藏
rove_pro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-11-24
收藏
得分:0 
9楼自己回去看书吧

楼主用的是《数据结构》中数据元素比较法 而不是冒泡法
2005-11-24 23:05
rove_pro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-11-24
收藏
得分:0 
而且楼主已经很明显说了数据元素比较方法 其实本意是如何控制好代码的时间复杂度

我发的代码虽然输出了正确的结果 可没有考虑时间复杂度的问题 这个问题要仔细研究了
2005-11-24 23:11
cranky
Rank: 1
等 级:新手上路
威 望:1
帖 子:89
专家分:0
注 册:2005-11-21
收藏
得分:0 
单步一下你就知道哪里出毛病了.你可以试试下面这代码


#include <stdio.h>
#define dmax 6 //待排序的数字的个数

int main (void)
{
int i, j, k, w, sum[dmax];

for (i=0; i<dmax; ++i)
{
printf("shu ru di %d ge shu: ",i+1);
scanf("%d",&sum[i]);
}

for (i=0; i<dmax-1; ++i)
{
j = i;
for (k=i+1; k<dmax; ++k)
{
if (sum[i] < sum[k])
j = k;
if (i != j)
{
w = sum[i];
sum[i] = sum[k];
sum[k] = w;
j=i; //这句是我加的
}
}
}

printf("\ncong da dao xiao pai xu:\n");
for (i=0; i<dmax; ++i)
{
printf("%d ",sum[i]);
}
return 0;
}

[此贴子已经被作者于2005-11-25 0:27:09编辑过]


一个不知道天高地厚,想问什么时候才是满壶水的鬼 --------------半壶水响叮当
2005-11-24 23:27
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

#include <stdio.h>
#define dmax 6

void main()
{
int i,j,k,flag,sum[dmax];

for(i=0;i<dmax;i++)
{
printf("please input %dth number: \n",i+1);
scanf("%d",&sum[i]);
}

for(i=0;i<dmax-1;i++)
{
flag=0;
for(j=1;j<dmax;j++)
{
if(sum[i]>sum[j])
k=sum[j];
sum[j]=sum[i];
sum[i]=k;
flag=1;
}

if(flag==0)
break;
}

printf("the sorted numbers: \n");
for(i=0;i<dmax;i++)
printf("%d",sum[i]);

}


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2005-11-24 23:28
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
11楼啊~我刚学C啊,还没学数据结构,可怜

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2005-11-24 23:30
rove_pro
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-11-24
收藏
得分:0 
单步一下你就知道哪里出毛病了.你可以试试下面这代码


#include <stdio.h>
#define dmax 6 //待排序的数字的个数

int main (void)
{
int i, j, k, w, sum[dmax];

for (i=0; i<dmax; ++i)
{
printf("shu ru di %d ge shu: ",i+1);
scanf("%d",&sum[i]);
}

for (i=0; i<dmax-1; ++i)
{
j = i;
for (k=i+1; k<dmax; ++k)
{
if (sum[i] < sum[k])
j = k;
if (i != j)
{
w = sum[i];
sum[i] = sum[k];
sum[k] = w;
j=i;
}
}
}

printf("\ncong da dao xiao pai xu:\n");
for (i=0; i<dmax; ++i)
{
printf("%d ",sum[i]);
}
return 0;
}

你自己试了吗 其实不用试也知道结果了
2005-11-24 23:40
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

rove_pro 我有几个C的基础问题想请教你


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2005-11-24 23:44
快速回复:数字排序中数据元素比较方法,出了问题,请高手赐教
数据加载中...
 
   



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

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