JAVA版冒泡排序、冒泡排序核心思想、冒泡排序详解

import java.util.Arrays; public class Bubblesorting { public static void main(String [] args) { int[] array = { 67, 48, 1, 24, 33, 99, 89, 100 ,3 ,71 ,12 ,50 ,20, 9 }; System.out.println("排序前:\r\n"+ Arrays.toString(array)); //冒泡排序 // bublesorting(array); // bublesortPlus(array); bubbleSortint(array); } static void bublesorting(int[] array){ //冒泡排序 标配版 int temp = 0; for (int i = 0; i < array.length; i++) { //array.length - 1 不减去1 array[j+1 ] 数组越界 for (int j = 0; j < array.length - 1; j++) { if(array[j] > array[j+1]) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } System.out.println("排序后..............标准"); System.out.println(Arrays.toString(array)); } /** * 冒泡旗舰版 */ static void bublesortPlus(int[] array) { int temp = 0; int p = 0; /** * 1.1 array.length -1 比较数组长度 - 1 次即可得出结果 */ for (int i = 0; i < array.length -1; i++) { /** * 1. array.length -1 - i 的原因: 数组越界 - i 外层循环每循环一次 * ,就把最大数移动大 数组第一个或者是最后一位置 , * 内层 循环就 需要递减 */ for (int j = 1; j < array.length -1 - i ; j++) { if(array[j] > array[j+1]) { temp = array[j+1]; array[j+1] = array[j]; array[j] = temp; p++; } } } System.out.println("排序后..............旗舰"+" " + p + "次"); System.out.println(Arrays.toString(array)); } /** * 冒泡豪华版 */ static void bubbleSortint(int[] array) { int temp = 0; int c = 0; for (int i = 0; i < array.length -1; i++) { boolean flag = false; for (int j = 0; j < array.length -1 - i; j++) { if(array[j] > array[j+1]) { flag = true; temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; c++; } if(flag == false) { break; } } } System.out.println("排序后..............豪华"+" " + c + "次"); System.out.println(Arrays.toString(array)); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwspzg.html