常见排序算法讲解(代码实现、时间复杂度及稳定性)

排序

排序:就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。
排序码:通常数据元素有多个属性域可用来区分元素,作为排序依据,该域即为排序码。其中有一个属性域可用来区分元按照主排序码进行排序,排序的结果是唯一的。按照次排序码进行排序,排序的结果可能是不唯一的。

排序算法稳定性

如果在元素序列中有两个元素R[i]和R[j],它们的排序码K[i]== k[j],且在排序之前,元素R[i]在R[j]的前面。如果在排序之后,元素R[i]仍在R[j]之前,则称这个排序算法是稳定的,否则称这个排序算法是不稳定的,
内部排序:数据元素全部放在内存中的排序。
外部排序:数据元素太多不能同时放在内存中.根据排序过程的要求不能在内外存之间移动数据的排序。

常见排序算法

常见排序算法讲解(代码实现、时间复杂度及稳定性)

因为一篇博客讲解所有排序篇幅过大,所以我们按类别分开讲解,保证篇幅较小更好接受,点击下面链接跳转至指定排序方法。

直接插入排序

希尔排序

直接选择排序

堆排序

冒泡排序

快速排序

归并排序

常见排序算法讲解(代码实现、时间复杂度及稳定性)