张仰彪第二排序法_C语言学习|交换法排序

88a85e0b05fba0edadb490ce9f58091f.png

计算机领域,排序和查找是两种最基本的操作任务,几乎在所有数据库程序、编程程序和操作系统中都有应用。排序是把一系列数据按升序或降序排列的过程,也就是将一个无序大的数据序列调整为有序序列的过程,它往往占用很多cpu的运行时间。

至今已经产生了许多比较成熟的排序算法,如交换法、选择法、插入排序法、冒泡法、快速排序法等。交换法虽然执行效率较低而且很少使用,但它对于理解后面将要介绍的选择法很有好处。

交换法排序借鉴了求最大值、最小值的思想,按升序(或降序)排序的基本过程:

先将第一个数分别与后面所有的数进行比较,若后面的数小(降序时未大),则交换后面这个数和第一个数的位置,否则不交换;这一轮比较全部结束以后,就求出了一个最小(降序时为最大)的数放在第二个数的位置。然后进入第三轮比较,……直到第n-1轮比较,求出一个最小(降序时为大)的数放在n-1个数的位置,剩下的最后一个数自然就最大(降序时为最小)的数,放在最后。n个数总共需要进行n-1轮比较。按降序排序每轮比较过程如图

30f76977e377fc4af9271160dac04801.png

交换法排序示意图

编写交换法排序的部分程序:

for(i=0;i

{

for(j=i+1;j

{

if(score[j]>score[i])//这样的比较表示按降序排序

{

temp=score[j];//这里temp起到”空瓶子“的作用,称为中间变量

score[j]=score[i];

score[i]=temp;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值