龙空技术网

C语言学习|交换法排序

编程之音 385

前言:

如今同学们对“c语言交换程序”大致比较看重,咱们都想要知道一些“c语言交换程序”的相关内容。那么小编在网摘上网罗了一些有关“c语言交换程序””的相关资讯,希望朋友们能喜欢,兄弟们快快来学习一下吧!

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

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

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

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

交换法排序示意图

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

for(i=0;i<n-1;i++)

{

for(j=i+1;j<n;j++)

{

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

{

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

score[j]=score[i];

score[i]=temp;

}

}

}

标签: #c语言交换程序 #c语言交换排序法