冒泡排序(java)

it2022-05-05  159

冒泡排序  1. 依次比较相邻两个数,永远让最大的数在后边。 走完整个未排序区间一定能保证,最大的数会被推到最后去。   冒泡一次,可以让一个最大的数放到最后,一共经过 n 次 / (n-1)次。  2. 无序区间,经两两比较,把最大的数冒泡到最后    无序区间:[0 ,array.length-i)    有序区间:[array.length-i , array.length)   代码如下:

import java.util.Arrays; public class Holiday0710{ public static void bubbleSort(int[] array){ boolean isSwapped=true; for(int i=0;i<array.length;i++){ for(int j=0;j<array.length-i-1;j++){ if(array[j]>array[j+1]){ swap(array,j,j+1); isSwapped=true; } } //一次交换都没发生,表明数组有序,排序完成 if(!isSwapped){ return ; } } } public static void swap(int[] array,int i,int j){ int t=array[i]; array[i]=array[j]; array[j]=t; } public static void main(String[] args){ int[] randomArray=new int[]{4,7,2,9,6,1}; bubbleSort(randomArray); System.out.println(Arrays.toString(randomArray)); } }

 4. 结果

[1, 2, 4, 6, 7, 9]

最新回复(0)