排序算法总结
1.直接插入排序ip:当出现两个一样的数时,后插入的数字要插入在前一个插入的数字后面。
核心思想:一一比较,直接插入
2.希尔排序:
根据已知的步长分成若干个小数组,划分依据在前一个的基础上步长缩短为原来的1/2。
3.冒泡排序(最经典)(稳定的)
从后往前两两对比,更小的往前放
Tip:从前往后的效果一样,不同的是,从后往前是逐次确定前面的数值。
稳定性的判定:如果数组中有两个相同的数,在经过排序后两个数的相对位置并没有发生改变,那么这个算法的稳定性能强
4.快速排序:
先选定基准数(可为左端、右端、两端中间值)
定义两个指针i和j,指针向基准数靠拢并比较,满足条件的进行调换,再重复上述过程。
5.简单选择排序:
以从左到右从小到大为例
数组需要每次遍历找到数组中最小的数,然后按照从左到右的顺序排序。
6.堆排序:
找大根堆,找到顶点上面的数,将它与最下面一行的数进行交换,此时就已经找到数组中最大的数了,之后再重构大根堆,再找顶点上的数,以此类推,完成数组的排序。
大根堆:找有单节点或双节点的数,然后对他们进行从上到下的逐次排序,此时顶点上的数就为这个堆的最大数。