系列文章目录
提示: 以下是其他排序算法的链接🔗
文章目录
- 系列文章目录
- 什么是冒泡排序?
什么是冒泡排序?
冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地比较相邻的两个元素,并交换它们的位置,直到整个序列排序完成。
冒泡排序的步骤如下:
- 从序列的第一个元素开始,依次比较相邻的两个元素。
- 如果前一个元素大于后一个元素,则交换它们的位置。
- 继续向后比较相邻的元素,重复步骤2,直到最后一个元素。
- 一轮比较完成后,最大的元素会被交换到序列的最后一个位置。
- 重复步骤1至步骤4,每次比较的元素数量减少一个,直到所有元素都排序完成。
冒泡排序的核心思想是通过相邻元素的比较和交换,将最大的元素逐渐“冒泡”到序列的末尾。由于每一轮排序都会将一个最大的元素放到正确的位置,所以称为冒泡排序。
冒泡排序的时间复杂度为O(n^2),其中n是待排序序列的长度。尽管冒泡排序的时间复杂度较高,但它的实现简单,适用于小规模的数据排序。
代码模板(示例):
class Solution {
public int[] sortArray(int[] nums) {
bubbleSort(nums);
return nums;
}
/**
* 冒泡排序
* 稳定
* O(n^2)
*/
public static void bubbleSort(int[] arr) {
// 排序轮数
int n = arr.length - 1;
for (int i = 0; i < n; i++) {
boolean flag = true;
for (int j = 0; j < n - i; j++) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = false;
}
}
if (flag) {
return;
}
}
}
}