java排序算法之冒泡排序
作者:张兵游勇 时间:2023-04-05 21:03:42
本文实例为大家分享了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,冒泡排序
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C# 汉字与拼音互转的实现示例
2022-03-06 06:50:20
![](https://img.aspxhome.com/file/2023/0/98200_0s.png)
C#简单爬虫案例分享
2023-04-14 08:44:13
SpringMVC的注解@RequestMapping属性及使用
2022-12-31 02:03:00
![](https://img.aspxhome.com/file/2023/6/129116_0s.png)
android 开发教程之日历项目实践(二)
2022-05-05 22:22:13
![](https://img.aspxhome.com/file/2023/8/117078_0s.jpg)
c#操作xml帮助类分享(xml增删改查)
2022-03-02 04:09:21
C# 参数按照ASCII码从小到大排序(字典序)
2023-03-14 22:14:11
Android使用个推实现三方应用的推送功能
2022-04-16 08:52:46
![](https://img.aspxhome.com/file/2023/4/138374_0s.png)
Android scheme 跳转的设计与实现详解
2021-07-29 03:42:52
Java基于解释器模式实现定义一种简单的语言功能示例
2021-06-18 15:53:42
![](https://img.aspxhome.com/file/2023/2/72382_0s.png)
IDEA-Maven项目的jdk版本设置方法
2022-07-21 16:04:17
![](https://img.aspxhome.com/file/2023/6/110626_0s.png)
C#利用ScriptControl动态执行JS和VBS脚本
2023-04-29 21:26:13
Java使用FileInputStream流读取文件示例详解
2021-05-26 00:57:58
![](https://img.aspxhome.com/file/2023/0/64430_0s.jpg)
java 生成有序账号的实现方法
2023-08-12 03:28:01
详解springboot集成mybatis xml方式
2022-08-05 09:04:54
![](https://img.aspxhome.com/file/2023/8/64478_0s.png)
MyBatis-Plus实现分页的方法使用详解
2023-02-14 18:22:16
![](https://img.aspxhome.com/file/2023/6/60026_0s.png)
实现java简单的线程池
2023-08-09 06:05:15
![](https://img.aspxhome.com/file/2023/5/58065_0s.png)
java 教你如何给你的头像添加一个好看的国旗
2021-11-11 02:53:25
![](https://img.aspxhome.com/file/2023/1/84211_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/9/80169_0s.png)