排序方法(选择排序)

选择排序法
我们先用三个数放入a, b, c,变量中排序简单来探究选择排序法思想。第一轮先将a和b比较,较大数放入a中,再将a和c比较大的数放入a中;
比如
a=6; b=7;c=8;
第一轮确定第一位
第一次比较
a=7;b=6;c=8;
第二次比较
a=8;b=6;c=7;
第二轮后确定第二位
第一次比较
a=8;b=7;c=6;经过三次比较终于排序好了。
这次将 77 45 26 89 9五个数从小到大排列;
第一轮确定第一位
77 45 26 86 9 原始数据
77 45 26 86 9 77和45比较,45比77小,互换位置
45 77 26 86 9 45和26比较,26比45小,互换位置
26 77 45 86 9 26和86比较,86比26大,不变位置
26 77 45 86 9 26和9比较, 9比26小,互换位置
9 77 45 86 26 第一轮结果确定第一位数;
第二论排序后 9 26 77 86 45
第三论排序后 9 26 45 86 77
第四论排序后 9 26 45 77 86 已经排好不需要继续;
代码实现

#include<stdio.h>
int main()
{
 int a[5],i,t,j;
 for(i=0;i<5;i++)//输入五个数 
  scanf("%d",&a[i]);
 for(i=1;i<=4;i++)//对于五个数只需4轮确定前四位 
 {
  for(j=i+1;j<5;j++)//a[i]需要和a[i+1]比较 
  {
   if(a[i]>a[j])//从小到大 
   {
    t=a[i];//交换位置 
    a[i]=a[j];
    a[j]=t;
   }
  }
 }
 for(i=0;i<5;i++)
  printf("%d\t",a[i]);//输出排序 
 return 0;
}

选择排序已经完了,还有一种冒泡排序和这差不多。选择排序是位置从前面确定过来。而冒泡排序位置是从后面确定到前面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值