大学数据结构与算法常用排序算法

数据结构常用算法的排序算法

写在前面

排序本质上是将一组数字按照一定的顺序排列并重复几次,一次只把一个数字放在正确的位置上。

两种思维方式:

(1)先确定一个数字,然后根据数据找到合适的位置;

(2)先确定一个位置,根据位置找到合适的号码;

冒泡排序算法

先确定位置,选前面还是后面,假设选择最后一个位置,也就是在最后一个代码实现中反复放最大的数。

选择性排序算法

只能选择前后位置,所选位置随每个数字向前或向后顺序调整。

插入排序算法

先确定数字,假设前面的数字已经排序,把它们和下一个数字作为选中的数字,把选中的数字向前插入到合适的位置:

快速排序算法

从数组的头部或尾部选择一个数字进行排序,比如较小的在左边,较大的在右边。这个数字是支点。我们每次和支点对比,调整顺序,都认为它们的相对位置已经固定,所以这个数就排出去了,不做处理。

排列左右两边,把左右两边分成两部分,各选一个数字再做一次这样的排序。注意只能从数组两端选择数字,依此类推。这可以通过递归函数来实现: