java排序算法之冒泡排序

作者:张兵游勇 时间:2023-04-05 21:03:42 

本文实例为大家分享了java排序算法之冒泡排序的具体代码,供大家参考,具体内容如下

冒泡排序

冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以从左往右冒泡,也可以从右往左冒泡,看心情),依次比较相邻的两个数的大小(到底是比大还是比小也看你心情)

java排序算法之冒泡排序

java代码实现bubblesort冒泡排序


package com.zy.test;

import java.util.Arrays;

public class BubbleSort {
   public static void main(String[] args) {
           System.out.println("sortTest");
           int[] arr={6,3,8,2,9,1};
       System.out.println(Arrays.toString(arr));
           for (int i=0;i<arr.length-1;i++){
               for (int j=0;j<arr.length-1-i;j++){
                   int temp = 0;
                   if (arr[j]>arr[j+1]) {
                       temp = arr[j];
                       arr[j] = arr[j+1];
                       arr[j+1] = temp;
                   }
               }
           }
       System.out.println(Arrays.toString(arr));
   }
}

冒泡排序思路:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

Java实现冒泡排序优化

冒泡有一个最大的问题就是这种算法不管不管你有序还是没序,闭着眼睛把你循环比较了再说.

比如我举个数组例子:[ 5,6,7,8,9 ],一个有序的数组,根本不需要排序,它仍然是双层循环一个不少的把数据遍历干净,这其实就是做了没必要做的事情,属于浪费资源。

针对这个问题,我们可以设定一个临时遍历来标记该数组是否已经有序,如果有序了就不用遍历了。


package com.zy.test;

import java.util.Arrays;

public class BubbleSort {
   public static void main(String[] args) {
           System.out.println("sortTest");
           int[] arr={6,3,8,2,9,1};
       System.out.println(Arrays.toString(arr));
           for (int i=0;i<arr.length-1;i++){
               boolean flag=true;
               for (int j=0;j<arr.length-1-i;j++){
                   int temp = 0;
                   if (arr[j]>arr[j+1]) {
                       flag=false;
                       temp = arr[j];
                       arr[j] = arr[j+1];
                       arr[j+1] = temp;
                   }
               }if (flag){
                   break;
               }
           }
       System.out.println(Arrays.toString(arr));
   }
}

来源:https://blog.csdn.net/qq_43623447/article/details/116949619

标签:java,冒泡排序
0
投稿

猜你喜欢

  • C# 汉字与拼音互转的实现示例

    2022-03-06 06:50:20
  • C#简单爬虫案例分享

    2023-04-14 08:44:13
  • SpringMVC的注解@RequestMapping属性及使用

    2022-12-31 02:03:00
  • android 开发教程之日历项目实践(二)

    2022-05-05 22:22:13
  • c#操作xml帮助类分享(xml增删改查)

    2022-03-02 04:09:21
  • C# 参数按照ASCII码从小到大排序(字典序)

    2023-03-14 22:14:11
  • Android使用个推实现三方应用的推送功能

    2022-04-16 08:52:46
  • Android scheme 跳转的设计与实现详解

    2021-07-29 03:42:52
  • Java基于解释器模式实现定义一种简单的语言功能示例

    2021-06-18 15:53:42
  • IDEA-Maven项目的jdk版本设置方法

    2022-07-21 16:04:17
  • C#利用ScriptControl动态执行JS和VBS脚本

    2023-04-29 21:26:13
  • Java使用FileInputStream流读取文件示例详解

    2021-05-26 00:57:58
  • java 生成有序账号的实现方法

    2023-08-12 03:28:01
  • 详解springboot集成mybatis xml方式

    2022-08-05 09:04:54
  • MyBatis-Plus实现分页的方法使用详解

    2023-02-14 18:22:16
  • 实现java简单的线程池

    2023-08-09 06:05:15
  • java 教你如何给你的头像添加一个好看的国旗

    2021-11-11 02:53:25
  • java9中gc log参数迁移

    2022-06-28 03:21:01
  • 深入浅析java中flyway使用简介

    2022-06-05 20:45:45
  • Java如何修改.class文件变量

    2022-05-18 17:07:50
  • asp之家 软件编程 m.aspxhome.com