冒泡排序最好时间复杂度为什么是O(n)?

blog链接:http://www.cnblogs.com/melon-h/archive/2012/09/20/2694941.html

通过上面的博客我知道了:

按照最初级的一般写法,每一次循环都比较相邻数据的大小,原数据是否有序不会影响比较次数,此时时间复杂度是O(n^2).

而网上和书上的很多说O(n)是因为加了优化。初始didswap=false. 当发生一次交换就将didswap置为true,这样如果原始有序,那么一次扫描完一次交换也不会有,即didswap=false,此时return,终止排序。此时时间复杂度是O(n).note:原始数据只要有一对需要改顺序,复杂度就又会变成O(n^2)的。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试