【资料图】
冒泡排序的特性
最好时间复杂度为 O(n) ,这时对应着数组已经是有序的了,只需要一次冒泡操作;最坏时间复杂度为 O(n^2) ,进行 n 次冒泡操作才能完成最终的排序 ;空间复杂度为 O(1) ,是一个原地排序算法
冒泡排序是一个稳定的排序算法,因为我们可以控制如果两个元素相等,就不进行交换,这就保证了它的稳定性 (这里的稳定性是指,排序算法不改变相等元素在数组中的先后位置,也就是a==b,在数组中a的位置比b的位置靠前,那么排序后a的位置仍然靠前,也就是排序不改变它们的相对位置)
冒泡排序所需要的交换操作次数和数组中的逆序度相等
插入排序
插入排序算法是基于某序列已经有序排列的情况下,通过一次插入一个元素的方式按照原有排序方式增加元素。这种比较是从该有序序列的最末端开始执行,即要插入序列中的元素最先和有序序列中最大的元素比较,若其大于该最大元素,则可直接插入最大元素的后面即可,否则再向前一位比较查找直至找到应该插入的位置为止。插入排序的基本思想是,每次将1个待排序的记录按其关键字大小插入到前面已经排好序的子序列中,寻找最适当的位置,直至全部记录插入完毕。执行过程中,若遇到和插入元素相等的位置,则将要插人的元素放在该相等元素的后面,因此插入该元素后并未改变原序列的前后顺序。我们认为插入排序也是一种稳定的排序方法。插入排序分直接插入排序、折半插入排序和希尔排序3类。
内容搜集整理于网络,不代表本站同意文章中的说法或者描述。文中陈述文字和内容未经本站证实,其全部或者部分内容、文字的真实性、完整性、及时性本站不做任何保证或者承诺,并且本站对内容资料不承担任何法律责任,请读者自行甄别。如因文章内容、版权和其他问题侵犯了您的合法权益请联系邮箱:43 520 349@qq.com 进行删除处理,谢谢合作!