冒泡排序最佳时间复杂度为O(n)的原因

参考:https://www.cnblogs.com/melon-h/archive/2012/09/20/2694941.html
概述:记录下基础容易出错的问题

前提内容详见参考

简单做下说明:冒泡排序虽然简单,版本也多,最简单的冒泡排序可能最佳时间复杂度并没有O(n),应注意。

public void bubbleSort(int arr[]) {boolean didSwap;for(int i = 0, len = arr.length; i < len - 1; i++) {didSwap = false;//当输入的数组为全正序排时,内层for只执行一轮,即i=0,j=0~n-1,最内层代码执行一下比较后,不执行交换,然后直接执行if(didSwap == false) return; 所以时间复杂度为O(n)for(int j = 0; j < len - i - 1; j++) {if(arr[j + 1] < arr[j]) {swap(arr, j, j + 1);didSwap = true;}}if(didSwap == false)return;}
}

冒泡排序最佳时间复杂度为(n)的原因相关推荐

  1. js排序的时间复杂度_冒泡排序最好时间复杂度为什么是O

    展开全部 冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会e68a8462616964757a686964616f31333433616161将最小或最大的元素&qu ...

  2. Java菜鸟教程 冒泡排序,时间复杂度和空间复杂度

    最近,笔者学习了冒泡排序,在此简单分享一下. 冒泡排序的原理:         对于一个数组,冒泡排序算法会比较相邻的两项的大小,并进行交换. 对每一对相邻的元素做同样的调整,如:第一个和第二个,第二 ...

  3. 冒泡排序及时间复杂度

    冒泡排序思想: 以从小到大排序举例.每一轮比较第n个值和第n+1个值的大小,如果num[n]大于num[n+1],那么交换这两个值:总共需要进行n-1次比较. public static int[] ...

  4. 冒泡排序最好时间复杂度为n的代码修改

    冒泡排序最好时间复杂度为n的代码修改 重点是加一个标识位 优化后的代码 代码优化的核心是增加一个标识位,在里层嵌套循环没有进行交换的时候退出程序 重点是加一个标识位 public void sort( ...

  5. 【C语言】冒泡排序算法和冒泡排序的时间复杂度

    提示:冒泡排序算法是非常重要的算法,一定要熟练掌握.思路可以参考一位大佬博主的博客:帅地.介绍的十分详细,理解了之后,可以参考我的代码 ,是入门级别的,比较好懂.关于时间复杂度是数据结构的内容,没学过 ...

  6. python冒泡排序算法时间复杂度为nlogn_Python版算法专题-1、冒泡排序

    1.冒泡排序 核心算法: 在数组x[n]中,从第一个数开始,拿x[i]和后面的数x[i+1]进行比较,如果x[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续 ...

  7. 排序算法-冒泡排序的时间复杂度分析

    冒泡排序算法是一种基于比较的排序算法,每次冒泡过程,都会有一个数据确定位置.经过n次冒泡后,就有n个数据确定了位置. 如图所示,对数组[4,5,6,3,2,1]进行冒泡排序.  起初,按照最原始的想法 ...

  8. 排序算法之 冒泡排序 及其时间复杂度和空间复杂度

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交 ...

  9. 冒泡排序:时间复杂度与空间复杂度

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交 ...

最新文章

  1. pytorch实现BiLSTM+CRF用于NER(命名实体识别)
  2. Linux常见命令(二)
  3. 在Ubuntu8.04上编译安装QT4(Application Development)开发环境
  4. 意大利归还中国文物;翟天临咪蒙成考公务员题目;携程回应五一机票涨价;腾讯未成年人网络保护体系上线;这就是今天的大新闻...
  5. 微软 Build 2020 为 WSL 带来的新消息一览:WSL2 即将到来,对 GPU 和 Linux GUI 的支持也不远了
  6. Xcode7下模拟器输入文本无法显示系统键盘的解决办法
  7. SQL注入双引号报错注入
  8. Excel换行显示的几种方法,你知道吗?
  9. 个人知识管理PKM:收集、消化、应用、创新
  10. 解决微信授权回调页面域名只能设置一个的问题 [php]
  11. android 根据宽度调整字体大小,android根据分辨率自动调整字体大小的实例代码
  12. 从技术面试官的角度谈谈简历和面试那些事儿
  13. 【在线研讨会-倒计时】12月12日Softing工业物联网解决方案 助力工业4.0
  14. WPF基础到企业应用系列8——依赖属性之“风云再起”
  15. 交换机分布缓存_述说数据中心交换机的重要性能指标——缓存
  16. 生产用料清单-在制材料数量
  17. 使用 FileReader进行文件读取
  18. 【蓝桥杯】 历届试题 国王的烦恼(并查集)
  19. 【Eclipse】xml文件
  20. 奈雪的茶布局元宇宙 传统品牌如何转战元宇宙营销

热门文章

  1. winapi模拟鼠标按住左键拖动
  2. Visual Basic 6.0.with.SP6 龙卷风大企业集成安装版(含下载地址)
  3. 阅读《基于CPSO和DE改进粒子群算法的无功优化仿真》的感想
  4. 写两个线程,一个线程打印1~52,另一个线程打印A~Z,打印顺序是12A34B....5152Z
  5. 程序员编程艺术:第十章、如何给10^7个数据量的磁盘文件排序
  6. 用爬虫来爬取csdn大神的文章的url
  7. JavaScript快速排序算法
  8. Java内功心法,创建型设计模式包括哪些
  9. 月入2W+,安利一个冷门又逆天的副业!
  10. C++建造者模式(原理+代码)