| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:选择排序的问题
只看楼主 加入收藏
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
 问题点数:0 回复次数:2 
选择排序的问题
#include"stdio.h"
#include"string.h"
typedef struct
{   int vec[4];
    int len;
}node;
void PaiXu_XuanZe(node *r1)
{  int i,j,k,t;
   for(i=0;i<r1->len;i++) //做n-1趟选择排序
    { k=i;      //k保存当前得到的最小关键字记录的下标,初值为i
       for(j=i+1;j<=r1->len;j++) //在当前无序区中选关键字最小的记录
        if(r1->vec[j]<r1->vec[k])
           k=j;    //记下最小关键字的位置
        if(j!=k)
        {  t=r1->vec[i];
           r1->vec[i]=r1->vec[k];
           r1->vec[k]=t;
        }
   }
}
main()
{  node *r1;
   int x,i;
  r1=(node*)malloc(sizeof(node));
  for(i=0;i<4;i++)
  scanf("%d",&r1->vec[i]);
  r1->len=4;
  PaiXu_XuanZe(r1);
  printf("\n");
  for(i=0;i<4;i++)
  printf("%d",r1->vec[i]);
}  
搜索更多相关主题的帖子: 选择 
2005-03-30 20:03
lntuzjc
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2005-3-23
收藏
得分:0 
#include"stdio.h" #include"string.h" typedef struct { int vec[4]; int len; }node; void PaiXu_XuanZe(node *r1) { int i,j,k,t; for(i=0;i<=r1->len-2;i++) /*做n-1趟选择排序,从0到len-2才是n-1趟,否则就是n趟了*/ { k=i; for(j=i+1;j<=r1->len-1;j++) /*j作为数组元素的下标,最大值只能是r1->len-1*/ if(r1->vec[j]<r1->vec[k]) k=j; if(j!=k) { t=r1->vec[i]; r1->vec[i]=r1->vec[k]; r1->vec[k]=t; } } } main() { node *r1; int x,i; r1=(node*)malloc(sizeof(node)); for(i=0;i<4;i++) scanf("%d",&r1->vec[i]); r1->len=4; PaiXu_XuanZe(r1); printf("\n"); for(i=0;i<4;i++) printf("%d\t",r1->vec[i]); } OK了!
2005-03-30 22:36
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
得分:0 
谢谢赐教

2005-03-31 14:16
快速回复:选择排序的问题
数据加载中...
 
   



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

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