排序算法:冒泡排序
核心思路:每次把两个相邻的元素进行比较,元素值大的往后放
分析规律
以数组 int[ ] arr = {5, 2, 3, 1} 为例
1.每一轮都是从0索引开始,相邻的两个元素比较
第一轮:0和1、1和2、2和3
第二轮:0和1、1和2
第三轮:0和1
2.比较轮数:数组的长度 - 1
3.每一轮比上一轮的比较次数少1次
代码思路
两个循环嵌套:
1.外层循环,控制冒泡排序总共多少轮 i: 0 1 2
2.内层循环,控制每一轮比较的次数 j: 0 1 2 j: 0 1 j: 0
2.1 在内层循环进行当前元素和下一个元素比较,将最大元素的交换到后面位置
最终代码
package com.itheima.suanfa;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] arr = { 5,2,3,1};
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) {
int num = arr[j];
arr[j] = arr[j + 1];
arr[j+1] = num;
}
}
}
System.out.println(Arrays.toString(arr));
}
}