public class Main { private static void bubbleSort(int[] array){ //外部的循环表示的是,冒泡的次数 //一次冒泡可以解决一个数的问题 //一共需要array.length //更优化的方式是array.length-1 for(int i=0;i<array.length;i++){ //每次冒泡之前假设数组已经有序 boolean sorted = true; //一次冒泡的过程,保证最大的数被推到最后去 for(int j=0;j<=array.length-2-i;j++){ //保证相邻的两个数,最大的在后面 if(array[j]>array[j+1]){ int t = array[j]; array[j]=array[j+1]; array[j+1]=t; sorted = false; } } //如果过程中一次交换都没发生过,假设有序成立 if(sorted == true){ break; } } } public static void main(String[] args){ int[] array = new int[]{ 9,5,2,7,4,3,8,6,0,1 }; bubbleSort(array); for(int i=0;i<array.length;i++) { System.out.println(array[i]); } } }
冒泡排序的优化
最新推荐文章于 2024-05-08 22:14:44 发布