冒泡排序(从大到小)
原理:对于n个数,需要进行n-1次扫描,每次扫描通过相邻两个数的比较,找出最大的数,放到数列顶部。
程序:
1.冒泡排序1:每次扫描把下一个元素和最前面的元素比较,一次扫描结束后,最大的元素就在最前面了。
2.冒泡排序2:每扫描一次,通过相邻两个元素的比较,使得最小或最大的数位于顶部。
3.冒泡排序3。对冒泡排序的改进方法:通过加入exchange变量用来判断每次扫描是否发生数值交换,如果哪次扫描没有发生数值交换,则已经排序好,无需进行下次扫描,减少了时间复杂度。
以上三个简单的冒泡算法中,用了三种不同的数值交换方法:加减法、置换法、位运算法。其中位运算法效率最高。
以上排序均为从大到小排序,若要从小到大,只做少许改动即可,原理相同!
直接插入排序
原理:每次执行,把后面的数插入到前面已经排序好的数组中,直到最后一个完成。
选择排序
原理:每次从待排序的记录中选出最大的数,放入已排好序的子文件中,直到全部记录完成。
以下为main函数及数组打印函数:
以上三种简单排序算法,都是从大到小的排序!