排序算法

最后更新于:2022-04-02 04:11:07

[TOC] ## 概述 排序有 1. 插入类排序有:直接插入排序和希尔排序 2. 选择类排序有:直接选择排序和堆排序 3. 交换类排序有:冒泡排序和快速排序 ![UTOOLS1588210883577.png](http://yanxuan.nosdn.127.net/620a141da7b3667b7a29410e30892851.png) ### 稳定性概念 **定义**:能保证两个相等的数,经过排序之后,其在序列的前后位置顺序不变。(A1=A2,排序前A1在A2前面,排序后A1还在A2前面) **意义**:稳定性本质是维持具有相同属性的数据的插入顺序,如果后面需要使用该插入顺序排序,则稳定性排序可以避免这次排序。 ### 排序详解 1. 冒泡排序可以说是最差的排序算法。 2. 冒泡排序,直接选择排序,直接插入排序认为是初级的排序算法 其中**直接插入排序**的性能是综合最好的. 一般来说,当排序数组规模`n`较小时,直接插入排序可能比任何排序算法都要快,建议只在小规模排序中使用. 3. 希尔排序是对直接插入排序的改进版本,比直接选择排序和直接插入排序快,且随着规模的递增,这种性能提升越明显。 因为算法容易理解,在排序数组中等规模下,我们可以使用它。在非常大的规模下,它的性能也不那么糟糕,但大规模排序还是建议使用以下的高级排序算法 4. 快速排序,归并排序和堆排序是比较高级的排序算法。 目前被认为**综合最好的高级排序算法是快速排序**,快速排序的平均用时最短,大多数的编程库内置的排序算法都是它
';