学弟问的一道数据结构的题,关于一些排序算法的时间复杂度。

针对近似有序序列,

①当使用直接插入排序时,其基本操作为数组中元素的移动。最好情况下,待排序列有序,无需移动,此时时间复杂度为O(n),
当为近似有序序列是,其基本操作执行的次数是K次当前循环的最大值的和,即时间复杂度为O(k.n)由于k远小于n,
综合考虑直接插入排序的时间复杂度为O(n)

②当使用冒泡排序时,默认为普通冒泡排序,其基本操作为元素间比较的次数,因此无论
是否是近似有序,时间复杂度均为O(n^2)

③当使用简单排序时,其基本操作也为元素间的比较,与待排序列状态无关,即第i次的
比较次数为n-i,时间复杂度为O(n^2)

综上,若当前序列为近似有序序列时,直接插入排序效率最高。

最新文章

  1. Trigger和ViewStateManager的具体比较
  2. Android Hook 借助Xposed
  3. QT中的C/S通信问题:关于服务器端readyread()信号不发射
  4. okhttp 基本介绍
  5. 河内塔(hanoi)
  6. OpenStack securityGroup rule Set
  7. BrowserSync使用
  8. 分布式唯一ID生成方案是什么样的?(转)
  9. Docker(五):Docker 三剑客之 Docker Machine
  10. c# 读取txt方法
  11. angularjs探秘<二>表达式、指令、数据绑定
  12. 流程图工具Visual Paradigm for UML
  13. 52.tableViewCell重用机制避免重复显示问题
  14. Python2.7-fileinput
  15. dokuwiki工具栏添加换行回车快捷键与按钮
  16. 51单片机和Arduino—闪烁灯实现
  17. CreateThread与_beginthreadex本质区别
  18. JS - 二叉树算法实现与遍历 (更新中...)
  19. python面试题(转)
  20. Metasploit拿Shell

热门文章

  1. Vue项目中设置每个单页面的标题
  2. Hyperf基础教程
  3. Jmeter 结构体系及运行顺序
  4. .NET Core 反编译dll源码查看
  5. thinkphp 5.x~3.x 文件包含漏洞分析
  6. dbcp数据源连接池
  7. GroupJoin()各参数的意义及用法
  8. vue render 中遇到的问题
  9. 超过百万的StackOverflow Flutter 问题-第二期
  10. HDU 2012 (水)