前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言 | 选择法排序

C语言 | 选择法排序

原创
作者头像
小林C语言
修改2021-01-13 10:06:18
8870
修改2021-01-13 10:06:18
举报
文章被收录于专栏:C语言入门到精通

例60:C语言实现用选择法对10个整数排序。

解析:选择排序思路如下,设有10个元素a[1]~a[10],将a[1]与a[2]~a[10],若a[1]比a[2]~a[10]都小,则不进行交换,即无任何操作。

若a[2]~a[10]中有一个以上比a[1]小,则将其中最大的一个,与a[1]交换,此时a[1]中存放了10个中最小的数。依次类推,共进行9轮比较,a[1]~a[10]就已按由小到大的顺序存放了。

整体代码逻辑为了让读者更加清晰,小林这里分为四部分:

第一部分 键盘输入10个数:

代码语言:javascript
复制
for(i=1;i<=10;i++)//依次键盘录入10个数据 
  {
    printf("array[%d]=",i-1);//数组下标从0开始 
    scanf("%d",&array[i]);
  }

第二部分 输出键盘录入的10个数:

代码语言:javascript
复制
for(i=1;i<=10;i++)//将键盘录入的10个数原样输出 
  {
    printf("%5d",array[i]);
  }

第三部分 排序逻辑:

代码语言:javascript
复制
for(i=1;i<=9;i++)
  {
    min=i;//把第一个数作为最小的 
    for(j=i+1;j<=10;j++)
    { 
      if(array[min]>array[j])//判断大小,小的为min 
      {
        min=j;
      } 
    }
      temp=array[i]; //大小交换 
      array[i]=array[min];
      array[min]=temp; 
  }

第四部分 排序后的10个数:

代码语言:javascript
复制
for(i=1;i<=10;i++)//输出排序后的10个数 
  {
    printf("%5d",array[i]);
  }

源代码演示:

代码语言:javascript
复制
#include<stdio.h>//头文件 
int main()//主函数 
{
  int i,j,min,temp,array[11];//定义整型变量和数组 
  printf("输入数据:\n");//提示语句 
  for(i=1;i<=10;i++)//依次键盘录入10个数据 
  {
    printf("array[%d]=",i-1);//数组下标从0开始 
    scanf("%d",&array[i]);
  }
  printf("\n");//换行 
  printf("原样输出:\n");//提示语句 
  for(i=1;i<=10;i++)//将键盘录入的10个数原样输出 
  {
    printf("%5d",array[i]);
  }
  printf("\n");//换行
  for(i=1;i<=9;i++)
  {
    min=i;//把第一个数作为最小的 
    for(j=i+1;j<=10;j++)
    { 
      if(array[min]>array[j])//判断大小,小的为min 
      {
        min=j;
      } 
    }
      temp=array[i]; //大小交换 
      array[i]=array[min];
      array[min]=temp; 
  } 
  printf("排序输出:\n");//提示语句 
  for(i=1;i<=10;i++)//输出排序后的10个数 
  {
    printf("%5d",array[i]);
  }
  printf("\n");//换行
  return 0;//主函数返回值为0 
}

编译运行结果如下:

代码语言:javascript
复制
输入数据:
array[0]=1
array[1]=4
array[2]=7
array[3]=9
array[4]=4
array[5]=3
array[6]=7
array[7]=9
array[8]=5
array[9]=3

原样输出:
    1    4    7    9    4    3    7    9    5    3
排序输出:
    1    3    3    4    4    5    7    7    9    9

--------------------------------
Process exited after 8.036 seconds with return value 0
请按任意键继续. . .

想看快速排序,归并排序各种排序的点赞告诉我啦

C语言 | 选择法对10个数排序

更多案例可以go公众号:C语言入门到精通

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档