packagecom.itheima; importjava.util.Arrays; /** * 冒泡排序 * 每次从头开始,两两进行比较,如果逆序则置换 * ,当比较到倒数第二个元素和最后一个元素时就会确定一个最大值,还有n-1个值未确定第一次循环比较了n-1次, * 当第二次循环时最后一个元素已经为最大值,所以不需要参与比较则第二次循环比较了n-2次 * 当到了第n-1此时就已经有n-1个元素被确定,只有1个元素未确定,这时此元素将再次与自己比较,结果必然为位置不变 * 所以只需进行n-1此循环就可以将所有元素确定位置,冒泡排序是稳定的排序 * @author 周路博 * */ public class 冒泡排序 { public static void main(String[] args) { int[] arr=new int[]{1,2,3,4,5,6,3,2,4,2,4,2,5,65,6,4 }; bubble(arr); System.out.println(Arrays.toString(arr) ); } private static void bubble(int[] arr){ //TODOAuto-generated method stub int tmp=0; for(int i=0;i<arr.length-1;i++ ){ //这里的arr.length-i-1是根据规律将i的每次自增特性纳入同时-1的到每次比较的次数 for(intj=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } } } } }
|