基本思想:通过对排序序列从前到后(从下标较小的元素开始),依次比较相邻的元素,如果发现逆序的交换,值较大的元素逐渐从前移到后部,就像水底的气泡一样逐渐向上冒。

冒泡排序(如果从小到大)

  1. 趟数:一共进行数组大小-1次循环
  2. 每一趟排序的次数都在逐渐减少
  3. 每一趟都找出最大的数
  4. 优化:如果某趟排序中,没有发生交换,可以提前结束冒泡排序。

以下代码为:通过冒泡排序思想进行升降序排列的方法(封装) 以及通过flag进进行优化

package bTest;import java.text.SimpleDateFormat;
import java.util.Date;public class BubbleSort {public static void main(String[] args) {int arr[] = { -2, -1, 5, 2, 8, 20 };Date date1 = new Date();final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date1Str = simpleDateFormat.format(date1);System.out.println("排序前的时间:" + date1Str);int arr1[] = new int[80000]; // 8万数据需要20秒左右 18万40秒左右;for (int i = 0; i < arr1.length; i++) {arr1[i] = (int) (Math.random() * 8000000);}bubbleSort(arr1); // 调用升序方法Date date2 = new Date();String date2Str = simpleDateFormat.format(date2);System.out.println("排序后的时间:" + date2Str);}// 冒泡排序法封装成一个方法 从小到大排序public static void bubbleSort(int arr[]) {boolean flag = false;int temp = 0;for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {if (arr[j] > arr[j + 1]) { // 冒泡排序从小到达flag = true;temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}// 优化减少无用的循环if (!flag) {break; // 一次判断中没有交换一次,说明已经排好序} else {flag = false; // 重置flag,进行下一次判断}}}// 封装通过冒泡排序法 降序排列public static void decSort(int arr1[]) {int temp1 = 0;for (int i = 0; i < arr1.length - 1; i++) {for (int j = arr1.length - 1; j > i; j--) {if (arr1[j - 1] < arr1[j]) { // 冒泡排序从小到达temp1 = arr1[j - 1];arr1[j - 1] = arr1[j];arr1[j] = temp1;}}}}}

冒泡排序(升序和降序)12/14相关推荐

  1. JAVA冒泡排序的升序和降序

    import java.util.Arrays;public class test02_Arrays_sort {public static void main(String[] args) {//A ...

  2. java comparator 降序排序_【转】java comparator 升序、降序、倒序从源码角度理解

    原文链接:https://blog.csdn.net/u013066244/article/details/78997869 环境 jdk:1.7+ 前言 之前我写过关于comparator的理解,但 ...

  3. 5.10 数据的升序和降序排序 [原创Excel教程]

    原文:http://coolketang.com/staticOffice/5a97f32ad50eee266a9bbac7.html 1. 本节课将为您演示,如何对工作表中的数据进行升序或降序排列. ...

  4. js数组去重排序(升序、降序、随机)方法

    js原生去重排序 var hhl = [1, 5, 6, 3, 2, 7, 6, 1, 5, 4, 8, 6, 9]var newArr = [];//创建一个新数组var isRepeat = fa ...

  5. python升序和降序排序sort_【python】 sort、sorted高级排序技巧

    这篇文章主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下 Python list内置sort()方法用来排序,也可以用python内 ...

  6. WinForm绘制带有升序、降序的柱形图

    WinForm绘制带有升序.降序的柱形图 private void HuiZhiTu( string strPaiXu){//初始数据int[] nums = { 150, 89, 200, 60, ...

  7. java comparable排序_java 实现Comparable接口排序,升序、降序、倒叙

    本人由于项目开发中需要对查询结果list进行排序,这里根据的是每一个对象中的创建时间降序排序.本人讲解不深,只实现目的,如需理解原理还需查阅更深的资料. 1.实现的效果 2.创建排序的对象 packa ...

  8. java冒泡排序算法代码降序_java实现冒泡排序算法

    介绍 冒泡排序是一种算法,比较相邻元素,如果他们处在错误的位置上,那么交换他们的位置.排序可以进行升序或者降序. 原理 从第一个元素开始,比较第一个元素和第二个元素,如果第一个元素大于第二个元素,那么 ...

  9. java——数组排序(升序和降序排列)

    目录 任务2.数组排序(升序和降序排列) 1.选择法排序 (1)选择法排序含义 (2)选择法排序实现步骤 2.冒泡法排序 (1)冒泡法排序含义 (2)冒泡法排序实现步骤 补充:利用Arrays工具提供 ...

  10. 输入整型数组和排序标识,对其元素按照升序或降序进行排序(华为OJ系列)

    输入整型数组和排序标识,对其元素按照升序或降序进行排序接口说明原型:void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);输入参数 ...

最新文章

  1. 你有过这样的“反应”吗?
  2. tomcat启动时窗口中出现中文乱码的解决办法
  3. Php中跳转语句goto,phpgoto语句
  4. 基于STM32单片机的精彩设计实例合集
  5. Unity实现多旋翼无人机的模拟飞行(物理引擎)
  6. feil_uVission4左侧工目录消失
  7. 中国大学生计算机设计大赛英语,中国大学生计算机设计大赛
  8. C++实现STL文件向glTF文件的转换
  9. 美团点评女技术总监任登君:不要给自己的人生设限
  10. try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
  11. VUE搭建云音乐播放器(App版本)
  12. Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[store_wa
  13. Mac 版 Vysor 1.8.2破解 以及下载
  14. Google 15道古怪面试题(有参考答案)
  15. 0-5V转4-20mA的几种实现方法
  16. 便携式文件加密器注册码_使用便携式文件加密工具安全地存储私人文件
  17. iOS 对于iPhone5分辨率兼容性调整问题
  18. 猪价涨27%,4国抢占中国猪肉市场,智利对华肉类出口增长近9成
  19. matlab bwlable代码,matlab的bwlabel
  20. HTML5 如何实现播放多个MP3音频

热门文章

  1. CDH 报错:under replicated blocks
  2. MSF生成windows木马
  3. JavaScript中的call,apply,bind区别及应用(包含手写call/apply/bind)
  4. 异常:javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method sayHi
  5. 统计QQ聊天记录进阶版(分词+统计关键字出现的次数+根据词频制作词云)
  6. nupt-acm1010
  7. css中clear:both属性的理解及用法
  8. 190911 CSP-S 2019模拟
  9. Caddy2静态网站设置
  10. Unity中实现雷达图