赞
踩
冒泡排序,顾名思义,就是数据像一个个气泡似的不断地往上冒。大致思路是 : 我们对给定的一个数组,进行n轮冒泡操作,每次操作分别比较相邻两项,如果前一项大于后一项,就将它们交换位置,你可以想象一下这个情景,经过n次比较(如果有必要就进行交换),最终的结果肯定是最大的那一项被移动到数组的最右端;那我们重复这个过程,经过n次冒泡操作,就将全部的数据进行了排序,这就是冒泡排序的思路。
首先通过扫描数组找到其中最小的元素,然后将它与第一个元素交换(如果第一个元素就是最小元素的话那么它就和自己交换)
在剩下的数组中找到最小的元素,然后将它与第二个元素交换
如此反复n-1次,就达到了排序的效果
通过很多次相邻元素的交换达到查找位置并插入的目的
先确定位置,然后数据搬移,最后交换
希尔排序是一个原地排序算法
希尔排序不是一个稳定的排序算法,这一点与插入排序不一样
希尔排序对于较大的数组性能比较好
归并简单来说就是保持有序的合并
它的思路就是从底层归并,每次遍历完整个数组之后,size就翻倍,最后一步归并完就是整个数组了
归并排序是一个稳定的排序算法 ,因为在归并的过程中,我们可以认为地控制当两个元素相等时,先放置前面地元素。
桶排序对要排序数据的要求是非常苛刻的,它要求桶与桶之间有着天然的大小关系,只有这样,在每个桶内的数据都排序完之后,桶与桶之间的数据不需要再进行排序。
计数排序只能用在数据范围不大的场景中
计数排序只能给非负整数排序,如果要排序的数据是其他类型的,要将其在不改变相对大小的情况下,转化为非负整数。
基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。
基数排序不改变相同元素之间的相对顺序,因此它是稳定的排序算法。
基数排序的空间复杂度为 O(n + k),所以不是原地排序算法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。