| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:从小到大排序问题
只看楼主 加入收藏
yz912498286
Rank: 1
等 级:新手上路
帖 子:49
专家分:3
注 册:2015-8-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
从小到大排序问题
void sort(int num[],char name[N][8])
 { int i,j,min,templ;
   char temp2[8];
   for (i=0;i<N-1;i++)
    {min=i;
     for (j=i;j<N;j++)
       if (num[min]>num[j])  min=j;
     templ=num[i];
     strcpy(temp2,name[i]);
     num[i]=num[min];
     strcpy (name[i],name[min]);
     num[min]=templ;
     strcpy(name[min],temp2);
     }
    printf("\n result:\n");
    for (i=0;i<N;i++)
       printf("\n %5d%10s",num[i],name[i]);
 }
这个程序min有什么用,直接用i、j替代min不行吗?为什么改成下面就不能排序了
void sort(int num[],char name[N][8])
 { int i,j,min,templ;
   char temp2[8];
   for (i=0;i<N-1;i++)
    {
     for (j=i;j<N;j++)
       if (num[i]>num[j])  
     templ=num[i];
     strcpy(temp2,name[i]);
     num[i]=num[j];
     strcpy (name[i],name[j]);
     num[j]=templ;
     strcpy(name[j],temp2);
     }
    printf("\n result:\n");
    for (i=0;i<N;i++)
       printf("\n %5d%10s",num[i],name[i]);
 }
2015-08-24 15:25
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:15 
对于各类排序,还是要自己模拟跑一遍,否则永远处于一知半解的地步。
你第一个位选择法排序,内循环只要找到最小的序号后,在外循环把最小的序号内容和外循环变量当前指向的内容交换;而你第二个是想改成冒泡法排序,冒泡法排序是在内循环中把最小的数和外循环指向的内容进行交换,你的错误是没在内循环里彻底完成交换,改成下述代码应该可以完成(增加一对花括号):
void sort(int num[],char name[N][8])
{ int i,j,min,templ;
   char temp2[8];
   for (i=0;i<N-1;i++)
    {
     for (j=i;j<N;j++)
       if (num[i]>num[j])
{
     templ=num[i];
     strcpy(temp2,name[i]);
     num[i]=num[j];
     strcpy (name[i],name[j]);
     num[j]=templ;
     strcpy(name[j],temp2);
}
     }
    printf("\n result:\n");
    for (i=0;i<N;i++)
       printf("\n %5d%10s",num[i],name[i]);
}

[ 本帖最后由 wmf2014 于 2015-8-24 20:11 编辑 ]

能编个毛线衣吗?
2015-08-24 20:09
TRUTH_2015
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2015-5-13
收藏
得分:5 
学排序可以看《大话数据结构》中排序章节。那里面说的很清楚。
希望对你有帮助。
2015-08-24 20:55
yz912498286
Rank: 1
等 级:新手上路
帖 子:49
专家分:3
注 册:2015-8-24
收藏
得分:0 
回复 2楼 wmf2014
3q
2015-08-24 21:59
快速回复:从小到大排序问题
数据加载中...
 
   



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

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