区别
1.冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;
2.冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;
3.冒泡排序是通过数去找位置,选择排序是给定位置去找数;
4.插入是把无序的插到有序的数组中,两两比较后,直接赋值。
5.希尔排序就是在插入排序的基础上加了一个gap跳跃间隔,以减少插入排序的次数。
冒泡排序优缺点
1.优点:比较简单,空间复杂度较低,是稳定的;
2.缺点:时间复杂度太高,效率慢;
知识点链接:
选择排序优缺点
1.优点:一轮比较只需要换一次位置;
2.缺点:效率慢,不稳定(举个例子5,8,5,2,9 我们知道第一遍选择第一个元素5会和2交换,那么原序列中2个5的相对位置前后顺序就破坏了)。
知识点链接:
插入排序优缺点
1.优点:稳定;
2.缺点:效率慢;
知识点链接:
希尔排序优缺点
1.优点:相对较快;
2.缺点:不稳;
知识点链接:
总结
插入和冒泡最佳时间复杂度都是O(N),且稳定,插入排序最佳时间复杂度是O(N^2),且不稳定。对于冒泡和插入,冒泡是两两交换数据,插入是直接赋值,因此插入要比冒泡好。希尔虽然在插入上进行了改进,但是不稳定。
参考:https://blog.csdn.net/weixin_41887155/article/details/85799820