/** * * @author MrWang 冒泡排序 */ public class BubblingSort { // 比较相邻的两个元素,如果第一个比第二个小(大),则交换它们的位置。 // // 重复当前动作,直到排序完成 // // 如: 3 , 5 , 2 , 7 , 9 , 6 , 4 // // 第一次排序 3 , 2 , 5 , 7 , 6 , 4 , 9 (9沉到末排序尾部) // // 第二次排序 2 , 3 , 5 , 6 , 4 , 7 , 9 (7沉到末排序尾部) // // 第三次排序 2 , 3 , 5 , 4 , 6 , 7 , 9 (6沉到末排序尾部) // // 第四次排序 2 , 3 , 4 , 5 , 6 , 7 , 9 (5沉到末排序尾部,排序完成) public static void bubbling_sort(String[] args) { int[] arr = new int[] { 3, 5, 2, 7, 9, 6, 4 }; for (int i = 0; i < arr.length - 1; i++) { /** * 每一次排序都会确定当前最大元素的位置 -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; } } } } }