排序即对一序列对象根据某个关键字进行排序
在c语言中排序是较为重要的一个部分
通过上周课程,我学习了两种经典的排序方法:1.选择排序法 2.冒泡排序法
1.选择排序法
思路:每次从排序列中按一定顺序检索序列,从中选出一个最小值,将其放在起始位置,以此类推,直到所有序列按一定顺序排列完全。
代码如下:
大致过程如图:
运行结果:
选择排序法是表现最稳定的排序算法之一,因为无论什么数据进去都是O(n^2)的时间复杂度,所以选择排序法适用于规模较小的序列排序。
选择排序法也是较为简单易理解的排序法,这也是它的优点之一。
关于选择排序的算法分析:
2.冒泡排序法
思路:从左到右,相邻元素进行比较。每次选出一个较大或者较小的数,通过交换位置将其放在左边或者右边。以此类推,最小的数或者最大的数就会从最左端冒出,就像冒泡一样。
以从小到大排序为例,第一轮比较过后最小的数就会出现在数列的最左边,第二轮比较后第二小的数就会出现在数列的第二位..........
就这样一轮一轮的下去,最后实现从小到大的排序。
冒泡排序法的代码:
运行结果如下:
关于冒泡排序法的算法分析: