一、冒泡排序算法运作的过程

(1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。

(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

(3)针对所有的元素重复以上的步骤,除了最后一个。

(4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

二、冒泡排序代码及运行原理

1.代码如下

package cn.pxy.test;

import java.util.Arrays;

/**

* 冒泡排序

* @author 胖咸鱼

*/

public class Test {

public static void main(String[] args) {

int[ ] values = { 3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};

bubbleSort(values);

System.out.println(Arrays.toString(values));

}

public static void bubbleSort(int[ ] values) {

int temp;

int i;

// 外层循环:n个元素排序,则至多需要n-1趟循环

for (i = 0; i < values.length - 1; i++) {

// 定义一个布尔类型的变量,标记数组是否已达到有序状态

boolean flag = true;

/*内层循环:每一趟循环都从数列的前两个元素开始进行比较,比较到无序 数组的最后*/

for (int j = 0; j < values.length - 1 - i; j++) {

// 如果前一个元素大于后一个元素,则交换两元素的值;

if (values[j] > values[j + 1]) {

temp = values[j];

values[j] = values[j + 1];

values[j + 1] = temp;

//本趟发生了交换,表明该数组在本趟处于无序状态,需要继续比较;

flag = false;

}

}

//根据标记量的值判断数组是否有序,如果有序,则退出;无序,则继续循环。

if (flag) {

break;

}

}

}

}

2.运行结果

3.运行原理

以下视频是冒泡排序的原理动态图,有助于理解冒泡排序。

01:09

java常用算法_JAVA编程常用算法——冒泡排序相关推荐

  1. java 大整数编程_Java编程--RSA算法中的大整数运算

    Java编程–RSA算法中的大整数运算 RSA原理浅析 RSA是利用陷门单向函数实现的,其安全基础依赖于大整数的分解问题的难解性 算法过程 为了加深对RSA算法的了解,接下来通过简单的一个例子来分析一 ...

  2. java gc回收算法_Java GC回收算法-判定一个对象是否可以回收

    开源推荐 推荐一款一站式性能监控工具(开源项目) Pepper-Metrics是跟一位同事一起开发的开源组件,主要功能是通过比较轻量的方式与常用开源组件(jedis/mybatis/motan/dub ...

  3. 6种java垃圾回收算法_Java垃圾回收算法

    主要根据以下3篇博客做的整理 http://blog.csdn.net/zsuguangh/article/details/6429592 http://www.cnblogs.com/ywl925/ ...

  4. java8 streams_使用Java 8 Streams进行编程对算法性能的影响

    java8 streams 多年来,使用Java进行多范式编程已经成为可能,它支持面向服务,面向对象和面向方面的编程的混合. 带有lambda和java.util.stream.Stream类的Jav ...

  5. 使用Java 8 Streams进行编程对算法性能的影响

    多年来,使用Java进行多范例编程已经成为可能,它支持面向服务,面向对象和面向方面的编程的混合. 带有lambda和java.util.stream.Stream类的Java 8是个好消息,因为它使我 ...

  6. java 中常用英语_java中常用英语

    英语|JAVA笔试题常见英语_电子/电路_工程科技_专业资料.Java 笔试题常见英语 What will be the output when you compile and execute the ...

  7. java的成员方法_java编程中的成员方法是什么?

    DIEA 成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块.它与过去所说的子程序.函数等概念相当.一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消 ...

  8. 垃圾回收算法_Java 垃圾回收算法与几种垃圾回收器

    一.如何确定某个对象是"垃圾"? 目前主流垃圾回收器都采用的是可达性分析算法来判断对象是否已经存活,不使用引用计数算法判断对象时候存活的原因在于该算法很难解决相互引用的问题.如何确 ...

  9. 编程的50种基础算法代码,编程常用算法有哪些

    1.哈希表(散列表) hash_map基于hash table(哈希表).哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间:而代价仅仅是消耗比较多的内存.然而在当前可 ...

最新文章

  1. 2021年大数据Spark(五):大环境搭建本地模式 Local
  2. 使用函数对4*4的二维数组转置
  3. Selenium Python 解决 UnexpectedAlertPresentException
  4. python装饰器-python中的装饰器常用于哪些应用场景
  5. 怎么在python下载网站内容-Python下载网页的几种方法
  6. 官宣:神策 2018 数据驱动大会亮点回顾
  7. 苹果汽车自动驾驶又出新信号:正与多家激光雷达供应商谈判
  8. 廖雪峰python3练习题二
  9. 基于深度学习知识追踪研究进展(综述)数据集模型方法
  10. 《Head First Java》| 1 进入Java 的世界
  11. gaussdb 日常运维命令总结【01】
  12. 模糊神经网络应用实例,神经网络与模糊控制
  13. 数据库的基本查询语句
  14. 最大子串和【浙江工商大学oj】【详细注释版】
  15. 什么是HTML?HTML怎么学?HTML基础教程
  16. 安装到部署 火绒安全企业新品究竟有多简?
  17. 英语计算机主板接口有,i/o(计算机接口)_百度百科
  18. 电视台,做直播别掉进这些坑,踩了这些雷
  19. 互联网日报 | 8月7日 星期六 | 华为上半年销售收入3204亿元;微博宣布下线“明星势力榜”;小米平板5系列8月10日发布...
  20. 《java虚拟机规范SE7》整理——第四章:Class文件格式

热门文章

  1. 编译原理——语言处理程序
  2. JAVA学习之常用集合List,Set,Map
  3. c# 睡眠3秒_C#中的闭包和意想不到的坑
  4. rtsp 测试地址_TranServer:简单实现浏览器播放RTSP流
  5. SpringMVC_2.搭建SpringMVC
  6. 计算机二级html真题,计算机二级《Web程序设计》试题及答案
  7. java和netbeans区别_如果我想只使用Java中的Eclipse和Netbeans有什么区别?
  8. C语言在建筑专业的应用,新工科背景下基于OBE的《C语言程序设计》课程建设
  9. revit2019 导出obj_revit、3dmax导出object文件软件操作说明.doc
  10. c++提供的可有效分配对象空间的运算符是_Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?