| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 624 人关注过本帖
标题:求高手帮忙解释一下下面选择排序法的程序?
只看楼主 加入收藏
小跳跳
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2013-5-9
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:3 
求高手帮忙解释一下下面选择排序法的程序?
用选择法对10个数进行从大到小排序
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
#include<stdio.h>
void main()
{ int i,j,temp,k,n=10,arr[10];
for(i=0;i<10;i++)   
      scanf("%d",&arr[i]);  
  for(i=0;i<n-1;i++)   
  {      k=i;               
  for(j=i+1;j<n;j++)     
      if(arr[k]<arr[j])        
          k=j;         
      if(k!=i)        
      {
          temp=arr[k];
      arr[k]=arr[i];
      arr[i]=temp;
      }   
  }   
for(i=0;i<10;i++)
printf("%d\n",arr[i]);
}
搜索更多相关主题的帖子: include 元素 
2013-06-16 21:30
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:1 
程序代码:
#include <stdio.h>
int main(void)
{ 
   int i,j,temp,k,n=10,arr[10];
   for(i=0;i<10;i++)   
      scanf("%d",&arr[i]);  
   for(i=0;i<n-1;i++)   //进行9次循环!! 
   {     
      k=i;               
      for(j=i+1;j<n;j++) //用a[k]和其余的元素进行比较!!    
         if(arr[k]<arr[j]) //记录下最小元素的下标j!       
             k=j;         
      if(k!=i)    //进行比较,把最大的放在每次循环后的首位!也就是a[0],a[1],,,    
      { 
          temp=arr[k]; 
          arr[k]=arr[i]; 
          arr[i]=temp; 
      }   
  }   
  for(i=0;i<10;i++)//输出数组!! 
     printf("%d\n",arr[i]);
}

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-16 21:46
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
选择法?听起来挺高端的样子。。。。。。。。。。。。。。我怎么看过来看过去就是冒泡?

Edsger Dijkstra:算法+数据结构=程序
2013-06-17 17:31
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
冒泡排序   大数或者小数像泡泡一样网上冒

三十年河东,三十年河西,莫欺少年穷!
2013-06-17 17:36
快速回复:求高手帮忙解释一下下面选择排序法的程序?
数据加载中...
 
   



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

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