排序的稳定性个人理解【O(n²)】

以前一起不理解排序的稳定性到底是什么意思 ,今天终于真正懂得了。

稳定:是指排序前两个相等的元素的位置在排序后是不变的,叫稳定

稳定的排序 

冒泡排序 :因为它的机理是两两相邻的元素进行比较,平均的时间复杂度是O(n²)

插入排序 :就像我们打牌抓牌然后在手中就把牌的顺序排好一样,开辟一个新的空间,把原来的元素一次一次的往里面放,第一次放之前先进行比较,让其是一个有序的形式,每一次再向里面放的时候都要进行比较。让和他相等的元素放在他的后面就是稳定的了

不稳定的排序 

选择排序 :每个位置的元素选择当前指定范围中的最小值 ,第一个位置元素选最小的,第二个位置的元素从除了第一个元素中选择最小,依次类推,eg: 3 ,4,3,5,1 就是不稳定的,第一次循环比较会把3 1 换位置  --》1 4 3 5 3 导致两个相等的元素位置改变,所以是不稳定的

注:插入排序和选择的区别:每次想这里的时候都要再想一会儿,因为感觉他俩很像。假如排序的时数组 :插入排序是先把一个元素放进去,再依次和新创建的有序数组比较,选择合适的位置。选择排序是在整个数组中比较先选出最小的元素放在第一个位置,再把数组从第二个元素的位置开始比较,再选择最小的位置放在第二个位置,依此比较,它是先比较再放在确定的位置,是已知位置选元素。插入排序是已知元素先位置

猜你喜欢

转载自blog.csdn.net/weixin_40728070/article/details/92833607
今日推荐