package yzhou.sort;import java.util.Arrays;public class BubbleSort
{public static void main(String[] args){int[] arr ={ 9, 1, 2, 5, 4 };sort(arr);System.out.println(Arrays.toString(arr));}// 减少每一趟的次数public static void sort(int[] arr){boolean sorted = true;int len = arr.length;for (int j = 0; j < len - 1; j++){sorted = true;System.out.println("第" + j + "趟");for (int i = 0; i < len - 1 - j; i++){System.out.println("第" + (i + 1) + "次");if (arr[i] > arr[i + 1]){int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;sorted = false;}System.out.println(Arrays.toString(arr));}if(sorted){break;}}}
}

boolean sorted = true; 作用:

冒泡排序,for循环始终比较两者之间的大小

先定义个boolean类型变量,假设等于 true,意思是:有些数据已经排序好,不要在去比较了

int[]  1,2,3,4,6

1 比较2  sorted = true;

2 比较3  sorted = true;

3 比较4  sorted = true;

4 比较6  sorted = true;

当sorted = true  ,意味着,这些数据,已经排好序,小的在左边,大的在右边,不然,if条件成立的话,sorted = false;

int[] 1,3,2,7,8

1 比较3  sorted = true;

3 比较2  sorted = false;

…….

if条件成立,sorted = false,,说明,当前的数组中,有部分数据的左边大于右边

转载于:https://www.cnblogs.com/zychengzhiit1/p/4808983.html

Java中的冒泡排序(减少比较次数)相关推荐

  1. Java中的冒泡排序,Comparator接口和Comparable接口的简单使用

    冒泡排序 冒泡排序是一种常见的排序方法,按照一定的规则(比如从小到大或者从大到小的顺序)对一组数据进行排序.而在Java开发中,也经常用到冒泡排序.我们就以下面的一个例子来讲解冒泡排序算法. 给定一个 ...

  2. Java中统计字符出现的次数

    我们面试通常会遇到,有一个字符串,如何统计出每个字符出现的次数,这样的题目.下面利用map集合存储进行统计每个字符出现的频次. 代码如下: public static void main(String ...

  3. java冒泡排序内外循环_java中的冒泡排序、for循环的嵌套使用以及接口与抽象类的区别。...

    一.java冒泡排序. java中的冒泡排序为一种简单的交换排序方法.其基本思路是从头开始扫描需要排序的元素,在扫描的过程中依次的对相邻的元素进行比较,将关键字值大的元素后移,每经过一趟排序后,关键值 ...

  4. java排序链表冒泡排序_Java中的冒泡排序

    java排序链表冒泡排序 Java Sorting is one of the many aspects of java interview questions. In this post, we w ...

  5. Java中实现的各种排序算法

    Java中的冒泡排序算法 package cn.edu.hactcm; /** * 冒泡排序算法 */ public class BubbleSortDemo { public static void ...

  6. java 线性回归算法_线性搜索或顺序搜索算法在Java中如何工作? 示例教程

    java 线性回归算法 大家好,之前,我讨论了二进制搜索算法的工作原理,并分享了在Java中实现二进制搜索的代码. 在那篇文章中,有人问我是否还有其他搜索算法? 如果数组中的元素未排序,又该如何使用它 ...

  7. 线性搜索或顺序搜索算法在Java中如何工作? 示例教程

    大家好,我之前谈到了二进制搜索算法的工作原理,并分享了在Java中实现二进制搜索的代码. 在那篇文章中,有人问我是否还存在其他搜索算法? 如果数组中的元素未排序,又如何使用二进制搜索算法,该如何搜索呢 ...

  8. java实现递归算法_如何在Java中实现二进制搜索算法而无需递归

    java实现递归算法 by javinpaul 由javinpaul 流行的二进制搜索算法的迭代实现,用于在排序数组中查找元素. (An Iterative implementation of the ...

  9. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2 ...

最新文章

  1. vue缓存页面【二】
  2. C++ Primer 读书笔记 (1)
  3. 6 Java Shell排序
  4. Vue.js 实践(2):实现多条件筛选、搜索、排序及分页的表格功能
  5. zabbix-proxy分布式监控配置
  6. 心理正常与异常的区分_心理正常与心理异常的区别是什么呢
  7. Nexus【环境搭建 01】CentOS 7.5 环境下搭建私有Maven仓库实录(启动问题处理+安装文件 nexus-3.4.0-02-unix.tar.gz 云盘链接)
  8. linux下产生core文件以及不产生core文件的条件
  9. 玩转mini2440开发板之【linux内核的编译和下载】
  10. 回顾 | 在 GitHub 上贡献到开源项目
  11. python的repl模式_如何更改sublimeREPL默认python版本
  12. 使用JAVA来获得本日,本周,本月,本年的时间信息
  13. eclipse报错:“start ruble bundle manager”解决方法
  14. 三维重建——相机几何参数标定
  15. Python字符串、元组、列表、字典互相转换的方法
  16. Flutter异常Another exception was thrown: A RenderFlex overflowed by 5.0 pixels on the bottom解决方案
  17. 如何解决Word里插入图片会被压缩
  18. centos 内网ip 设置_CentOS7 设置局域网固定IP
  19. 设计并实现“恺撒密码”--简单版
  20. 推荐系统相关顶会整理

热门文章

  1. [转]Entity Framework走马观花之把握全局
  2. ISV页面中获取当前用户信息
  3. LINQ学习之旅——准备(2)
  4. flutter已经支持安卓热更新_flutter 在 android 上的热更新
  5. linux存储--进程栈 线程栈 内核栈 中断栈(十六)
  6. linux进程--僵尸进程(五)
  7. 16 开机自动登录脚本_创建计划任务自动运行程序---运维无人值守
  8. 简述WinCE开发特性及忠告
  9. spring YML属性提示
  10. 信息系统项目管理师 必背