冒泡排序(bubbleSort)
基本思想
对待排序的袁术从前往后,一次比较相邻两个元素得值,如发现前一个值比后一个值大,则交换元素,从而使得每轮比较,较大的值往后靠
优化
如果,一趟下来,没有交换任何元素,则表明该数组就为有序数组直接退出排序
Java代码
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {5, 9, 6, 75, 45};
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void bubbleSort(int[] arr) {
boolean flag = false;
//多少轮排序
for (int i = 0; i < arr.length-1; i++) {
//每轮比较的次数
for (int j = 0; j < arr.length-i-1; j++) {
if (arr[j] > arr[j + 1]) {
flag = true;
swap(arr,j,j+1);
}
}
if (!flag) {
break;
} else flag = false;
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}