Java教程

冒泡排序初理解

本文主要是介绍冒泡排序初理解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

冒泡排序就是对比前后两个值,再通过中间值,经行交换,小往前排,大往后排。完成一轮,最大值在数组最后一位,然后再冒泡比较第二大的值,因为已经确定了一个值,比较数组长度-1,第二重for循环长度-1。
一般冒泡排序
public static void maoPaoDeal(int[] d){
int e = 0;
for(int i = 0 ; i < d.length; i++){
for(int j = 0 ; j < d.length - i - 1; j++){
if(d[j] > d[j+1]){
e = d[j+1];
d[j+1] = d[j];
d[j] = e;
}
}
System.out.println(Arrays.toString(d));
}
}
在这里插入图片描述
在最后几排其实已经完成排序,但是还是接着循环,所以我们要在其小循环内部(第二重循环),不在交换前后值的时候,就说明完成了排序,加一个判断,满足条件退出循环

优化后冒泡排序
public static void maoPaoDeal(int[] d){
int e = 0;
for(int i = 0 ; i < d.length; i++){
boolean flag = true;
for(int j = 0 ; j < d.length - i - 1; j++){
if(d[j] > d[j+1]){
flag = false;
e = d[j+1];
d[j+1] = d[j];
d[j] = e;
}
}
//当内部不在判断和交换位置,就退出循环
if(flag){
break;
}
System.out.println(Arrays.toString(d));
}
}
在这里插入图片描述

这篇关于冒泡排序初理解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!