![88a85e0b05fba0edadb490ce9f58091f.png](https://i-blog.csdnimg.cn/blog_migrate/3fa1d7fb239627c7209bfd812ad83854.jpeg)
计算机领域,排序和查找是两种最基本的操作任务,几乎在所有数据库程序、编程程序和操作系统中都有应用。排序是把一系列数据按升序或降序排列的过程,也就是将一个无序大的数据序列调整为有序序列的过程,它往往占用很多cpu的运行时间。
至今已经产生了许多比较成熟的排序算法,如交换法、选择法、插入排序法、冒泡法、快速排序法等。交换法虽然执行效率较低而且很少使用,但它对于理解后面将要介绍的选择法很有好处。
交换法排序借鉴了求最大值、最小值的思想,按升序(或降序)排序的基本过程:
先将第一个数分别与后面所有的数进行比较,若后面的数小(降序时未大),则交换后面这个数和第一个数的位置,否则不交换;这一轮比较全部结束以后,就求出了一个最小(降序时为最大)的数放在第二个数的位置。然后进入第三轮比较,……直到第n-1轮比较,求出一个最小(降序时为大)的数放在n-1个数的位置,剩下的最后一个数自然就最大(降序时为最小)的数,放在最后。n个数总共需要进行n-1轮比较。按降序排序每轮比较过程如图
![30f76977e377fc4af9271160dac04801.png](https://i-blog.csdnimg.cn/blog_migrate/60d7c8b460a3c74465bbb3a4432ce7ac.jpeg)
交换法排序示意图
编写交换法排序的部分程序:
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;
}
}
}