zoukankan      html  css  js  c++  java
  • 算法-比较普通插入排序和冒泡排序的差异

    相同点: 冒泡排序和插入排序都是把数组分成两块,一块是已排好序,剩下的是未排好序。按照标准的时间复杂度和空间复杂度来算,两个算法都是O(n^2)时间复杂度,和常数空间复杂度。两个算法都是通过一步一步的移动元素达到最后的位置。

    有两点差异我比较关注:元素比较的次数和元素移动的次数。

    元素比较次数可以理解为时间复杂度,我理解通过标准时间复杂度算出来的是最坏的情况,所以可以更细化下其他的情况。

    再比较元素比较次数之前先看下元素移动的次数,因为两个算法都会通过一步一步移动元素的方法来让元素达到它最终的位置。显而易见,两个算法元素移动次数是相同的。因为元素都是一步一步移动,而且移动方向都是单向。

    再看比较次数,插入排序的每次比较都会伴随原始移动,也就是说每次比较都会对元素到达它最终的位置有作用。但是冒泡排序中可能存在某次比较并不移动元素的情况。所以冒泡排序的比较次数是大于等于插入排序的。 

    综上得出结论,插入排序的性能是大于等于冒泡排序的。

  • 相关阅读:
    一个BUG显示了IE7和IE6解析URL中中文参数能力的不同
    Winform+Webservice小结
    精通 JS正则表达式
    JSON
    Jquery
    MongoDB 驱动实践
    概要设计(总体设计)
    LINQ 学习
    MongoDB培训
    数据流程图(需求分析方法和建模工具)
  • 原文地址:https://www.cnblogs.com/caiyao/p/13070543.html
Copyright © 2011-2022 走看看