冒泡排序的原理
在数组中两两相比较,如果前者比后者大,则交换两者顺序,
依次比较完以后,最大值会出现在最大索引值处
规律:
两两比较,大的往后放
第一次比较,倒数第0个不需要再次比较
第二次比较,倒数第1个不需要再次比较
第三次比较,倒数第2个不需要再次比较
....
第n次比较,倒数第3个不需要再次比较
//导包
import java.util.Scanner;
public class ArrayDemo02 {
//编写一个主方法
public static void main(String[] args){
//创建一个键盘录入对象
Scanner sc = new Scanner(System.in);
int[] arr = new int[5];
//提示录入并接收
for (int i = 0;i < 5;i++){
System.out.println("请输入第" + (i+1) + "个数字:");
arr[i] = sc.nextInt();
}
//调用方法
//遍历排序前的数组
System.out.println("排序前的数组为:");
//调用遍历方法
printArray(arr);
//调用冒泡排序的方法
bubbleSort(arr);
System.out.println("排序后的数组为:");
//调用遍历方法
printArray(arr);
}
//编写冒泡排序方法
public static void bubbleSort(int[] array){
//比较次数
for(int x = 0;x < array.length-1;x++){
//里面元素进行判断,比较大小
for (int y = 0;y < array.length-1-x;y++) {
//前面元素比后面元素大,互换位置
if (array[y] > array[y + 1]) {
int temp = array[y];
array[y] = array[y + 1];
array[y + 1] = temp;
}
}
}
}
//定义数组遍历方法
public static void printArray(int[] array){
System.out.print("[");
for(int i = 0;i < array.length;i++){
//判断是否是数组的最后一个元素
if(i == array.length-1){
System.out.println(array[i] + "]");
}else {
System.out.print(array[i] + ", ");
}
}
}
}