Java冒泡排序
本文最后更新于:2021年9月2日 晚上
1、冒泡排序
import java.util.Arrays;
/**
* 冒泡排序
*/
public class Test01 {
public static void main(String[] args) {
int[] values = {3,1,6,2,9,0,7,4,8,5};
System.out.println("排序前数组:"+ Arrays.toString(values));
int temp;
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values.length-i-1; j++) {
if (values[j]>values[j+1]){
temp = values[j];
values[j] = values[j+1];
values[j+1] = temp;
}
}
System.out.println("第"+(i+1)+"趟,完成时"+Arrays.toString(values));
}
}
}
2、优化代码:
从上图得知,第五趟排好后就可以直接输出了。所以对代码进行优化
import java.util.Arrays;
/**
* 冒泡排序
*/
public class Test01 {
public static void main(String[] args) {
int[] values = {3,1,6,2,9,0,7,4,8,5};
System.out.println("排序前数组:"+ Arrays.toString(values));
int temp; //用来交换的临时变量
//定义一个布尔类型的变量,标记数组是否已达到有序状态
boolean flag = true;
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values.length-i-1; j++) {
if (values[j]>values[j+1]){
//两两比较,如果大于就交换
temp = values[j];
values[j] = values[j+1];
values[j+1] = temp;
flag = false;
}
}
if (flag){
System.out.println("结束排序!");
break;
}else {
flag = true;
}
System.out.println("第"+(i+1)+"趟,完成时"+Arrays.toString(values));
}
}
}
3、把算法封装起来,以后用可以直接调用方法
import java.util.Arrays;
/**
* 冒泡排序
*/
public class Test01 {
public static void main(String[] args) {
int[] values = {3,1,6,2,9,0,7,4,8,5};
bubbleSort(values);
}
public static void bubbleSort(int[] values){
//int[] values = {3,1,6,2,9,0,7,4,8,5};
System.out.println("排序前数组:"+ Arrays.toString(values));
int temp; //用来交换的临时变量
//定义一个布尔类型的变量,标记数组是否已达到有序状态
boolean flag = true;
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values.length-i-1; j++) {
if (values[j]>values[j+1]){
//两两比较,如果大于就交换
temp = values[j];
values[j] = values[j+1];
values[j+1] = temp;
flag = false;
}
}
if (flag){
System.out.println("结束排序!");
break;
}else {
flag = true;
}
System.out.println("第"+(i+1)+"趟,完成时"+Arrays.toString(values));
}
}
}
本文作者: CodeAnime
本文链接: https://codeanime.cc/Java%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!