1) Bubble排序,又称冒泡排序
算法思想正如其名,冒泡,若是按升序进行排序的话,即是"大数下沉":
通过上面的一次循环的可以把 lm 个元素的数组a 的最大的数下沉到最后一个位置,这样数组a 的最后一个位置即完成了排序,接着我们来进行倒数第二位置的排序,即把前 lm-1 个元素的最大一个数下沉到倒数第二个位置,依次类推我们就可完成整个数组a 的排序。
从每次的大数下沉可以看出Bubble排序是属于稳定排序算法。
2)插入排序, 稳定排序算法,将要求插入的元素插入到有序的序列里,insert sort适合于有部分已经有序的数组序列:
3)希尔排序,另类的插入排序,普通的插入排序的,向前面的有序序列里插入的时候是一个一个元素的比较的,而希尔排序的则是跨越n个 数进行插入,这样带来的是排序效率上的提高,却使得排序算法不稳定。
以下是我提供的一种希尔排序,开始的插入间隔是 nums / 2, 第二次的是 nums / 4 ……,直到插入间隔为1
4)选择排序:
5)快速排序,思想是 分而治之,很大程度上提高了效率,同样的牺牲排序的稳定性