/*** 冒泡排序的核心就是,按顺序进行两两比较,如果第一个比第二个大则交换位置*/
public class MaoPaoPaiXu {private static int[] bubbleSort(int[] a) {// 至少进行n-1轮比较for (int i = 0; i < a.length - 1; i++) {// 第一轮比较完毕后,最大的已经排到最后面,所以下次比较就不用比较最后一个了,这样更快for (int j = 0; j < a.length - i - 1; j++) {if (a[j] > a[j + 1]) {// 交换位置swap(a, j, j + 1);}}}return a;}private static void swap(int[] a, int j, int i) {int temp = a[i];a[i] = a[j];a[j] = temp;}/*** 冒泡排序的时间复杂度是O(n^2),空间复杂度是O(1)*/public static void main(String[] args) {int[] a = { 2, 7, 4, 66, 43, 8, 5, 45, 22, 1, 9, 20 };int[] bubbleSort = bubbleSort(a);for (int i = 0; i < bubbleSort.length; i++) {System.out.println(bubbleSort[i]);}}}

转载于:https://www.cnblogs.com/java-spring/p/10792195.html

常见排序算法之冒泡排序相关推荐

  1. 常见排序算法:冒泡排序

    为什么80%的码农都做不了架构师?>>>    从这篇文章开始,我会陆陆续续将我所能用Java实现的算法在这里简单做个梳理,也算温故而知新吧.受个人水平和时间限制,可能会有错漏,欢迎 ...

  2. java 实现 常见排序算法(一) 冒泡排序

    大家好,我是烤鸭: 今天分享一下基础排序算法之冒泡排序. 1.     冒泡排序: 原理:比较两个相邻的元素,将较大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第 ...

  3. php常见排序算去,PHP兑现常见排序算法

    PHP实现常见排序算法 //插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i=1; $i $tmp = $arr[ ...

  4. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些

    学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...

  5. python实现常见排序算法

    python实现常见排序算法 快速排序 思想:取出第一个元素把它放到序列的中间某一个正确位置,以它进行分割成左边和右边,再分别对左边和右边进行取元素分割(递归) 递归实现 def quicksort( ...

  6. golang 排序_常用排序算法之冒泡排序

    周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...

  7. php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现

    常见排序算法及PHP实现全文代码使用PHP7.2语法编写 0. 五种基础排序算法对比 1. 冒泡排序(Bubble Sort) 冒泡排序 是一种交换排序,它的基本思想是:对待排序记录从后往前(逆序)进 ...

  8. python常见排序算法解析

    python--常见排序算法解析 算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法,分 ...

  9. C/C++排序算法(3)冒泡排序

    常见排序算法总结(3)冒泡排序 一篇文章,带你搞懂 冒泡排序 (注:代码语言的选择不应该限制了我们对算法的理解) 文章附有动图!一看就懂! (1)工作原理 相邻的数据进行两两比较,小数放在前面,大数放 ...

最新文章

  1. log4j配置_是时候了解一下log4j2各种配置的含义了!
  2. 大数据学习——akka自定义RPC
  3. 网上找工作秘籍(3)
  4. NE2018届校招内推笔试——数据挖掘
  5. 47 CO配置-控制-利润中心会计-设置实际数据的控制参数
  6. Jquery改变窗体大小
  7. android自定义选年控件,Android精美日历控件CalendarView自定义使用完全解析
  8. Android安全开发之WebView中的地雷
  9. hdu_2476_String painter(区间DP)
  10. 7-16 装箱问题 (20 分)
  11. [Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列
  12. learn from 德国老师
  13. php爬虫入门之phpspider框架
  14. Netty原理:Channel
  15. 如何获取B站视频弹幕?
  16. CIKM 2022 | HGANDTI: 药物-靶点相互作用预测的异构图注意网络
  17. 圆方树学习笔记 例题 uoj30 Tourists
  18. Vue项目启动时自动打开浏览器
  19. TCP第四次挥手后为什么要等待2MSL后才断开链接?等待时间为什么是2MSL?
  20. Linux-脚本安装、快照、重置虚拟机

热门文章

  1. Android之GridView(九宫图)
  2. 网站产品设计应避免的7个误区
  3. 十四周三次课、MySQL主从配置
  4. oracle用户创建和授权(一)
  5. Facebook、LinkedIn、Airbnb、Google专家聚首QCon,他们会带来什么?
  6. SVM学习(续)核函数 松弛变量和惩罚因子
  7. Socket accept failed
  8. PHP各种魔术方法测试
  9. IIS 支持 php
  10. android 6.0动态权限问题