携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情
1️⃣前言
大家好,我是翼同学。
今天笔记的内容是:
- 冒泡排序
2️⃣内容
2.1、冒泡概述
冒泡排序是常见的数组排序算法,我们需要遍历要排序的数组,一次比较两个元素,如果他们的顺序不对,则交换。
冒泡排序的优点在于稳定,但稳定的同时也比较慢,因为我们每次只能移动相邻两个数据。
2.2、实现思想
冒泡排序的基本实现思想如下:
- 比较相邻的两个数组元素,如果第一个元素比第二个元素大则交换,也就是升序;
- 对每一对相邻的元素进行相同的操作,从开始的第一对到最后一对;
- 此时经过一轮排序后,最大的元素将会跑到数组的末尾;
- 接着重复前面的步骤,当然,最后一个元素不用参加;
- 持续重复以上操作,则每次比较的元素对将越来越少;
- 直到没有任何一对元素需要比较,则排序结束。
2.3、动图示意
冒泡排序的最大特点在于,每一轮数组的遍历循环结束后,最大的一个数会跑到数组末尾。也就是说,下一轮循环就不用比较最后的数。每一轮循环都比上一轮循环的结束位置靠前一位。
2.4、代码实现
public class ArrayTest6 {
public static void main(String[] args) {
// 静态创建并初始化数组
int[] arr = {37, 14, 25, 81, 9};
System.out.print("原数组:[ ");
// 打印数组
for(int i : arr){
System.out.print(i+" ");
}
System.out.println("]");
//冒泡排序
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
// 如果arr[j] > arr[j+1],则交换二者
if (arr[j] > arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
System.out.print("排序后:[ ");
// 排序结束后打印数组:
for(int i : arr){
System.out.print(i+" ");
}
System.out.println("]");
}
}
程序运行后效果如下:
3️⃣写在最后
好了,今天的笔记就记到这里。