算法解析
冒泡排序是最基础的排序算法,由于其直观性,经常作为首个介绍的排序算法。其原理为:
- 内循环: 使用相邻双指针 j , j + 1 从左至右遍历,依次比较相邻元素大小,若左元素大于右元素则将它们交换;遍历完成时,最大元素会被交换至数组最右边 。
- 外循环: 不断重复「内循环」,每轮将当前最大元素交换至 剩余未排序数组最右边 ,直至所有元素都被交换至正确位置时结束。
代码实现
import java.util.Arrays;
public class BubbleSort {
public static void bubbleSort(int[] nums) {
int n = nums.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
int[] nums = {3, 9, 4, 1, 6};
System.out.println("排序前:" + Arrays.toString(nums));
bubbleSort(nums);
System.out.println("排序后:" + Arrays.toString(nums));
}
}
参考文章
https://leetcode.cn/leetbook/read/illustration-of-algorithm/phn3m1/