Java排序算法之冒泡排序是一种简单的排序算法,它通过比较相邻两个元素的大小,如果前一个元素大于后一个元素,则交换它们的位置,重复这个过程直到整个数组排好序。
基本思路
- 遍历数组,将相邻两个元素进行比较,若前一个元素比后一个大,则交换它们的位置;
- 每遍历一轮,就可以找到当前最大或最小的元素,需要遍历数组长度减去已排序部分的次数。
代码实现
public static void bubbleSort(int[] arr) {
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 temp = arr[j];
arr[j] = arr[j + 1]; // 交换元素
arr[j + 1] = temp;
}
}
}
}
示例说明
假设要对以下数组进行从小到大排序:
int[] arr = { 3, 2, 5, 1, 4 };
- 第一轮排序
在第一次遍历数组时,比较arr[0]与arr[1],发现arr[0]>arr[1],需要进行交换,可以得到数组:
int[] arr = { 2, 3, 5, 1, 4 };
接下来比较arr[1]与arr[2],因为已经交换了arr[0]和arr[1]的位置,现在的arr[1]为3,arr[2]为5,不需要交换,可以得到数组:
int[] arr = { 2, 3, 5, 1, 4 };
依此类推,可以得到排好序的数组:
int[] arr = { 1, 2, 3, 4, 5 };
- 第二轮排序
在第二次遍历数组时,需要比较的元素为arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],arr[3]和arr[4],可以得到排好序的数组:
int[] arr = { 1, 2, 3, 4, 5 };
- 第三轮排序
第三次遍历数组时,只需要比较arr[0]和arr[1],arr[1]和arr[2],arr[2]和arr[3],可以得到排好序的数组:
int[] arr = { 1, 2, 3, 4, 5 };
经过三轮排序后,可以得到从小到大排好序的数组。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java排序算法之冒泡排序 - Python技术站