package array; import java.util.Arrays; public class ArrayDemo07 { public static void main(String[] args) { int [] a = {1,4,5,6,72,2,2,2,25,6,7}; int[] sort = sort(a);//调用完我们自己写的排序方法以后,返回一个排序后的数组 System.out.println(Arrays.toString(sort)); } public static int[] sort(int [] array){ int temp = 0; //临时变量 for (int i = 0; i < array.length-1; i++) {//外层循环,判断循环走多少次;这个可以不减1 boolean flag = false;//通过flag标志位减少没有意义的比较 for (int j = 0; j < array.length-1-i; j++) {//这个必须减1 if(array[j+1]>array[j]){/* 排序:>:从大到小 <:从小到大 */ temp = array[j]; array[j]=array[j+1]; array[j+1]= temp;//上边必须减1的原因是这个会出现11 flag=true; /**内层循环 *1.比较判断两个数,如果第一个数比第二个大则交换位置 *2.如果为<=一定要减1,不减1下标会越界 如果为<就无所谓 *3.if a=b b=a 说明ab相等 所以要引入第三个临时变量 */ } if (flag==false) { break; } }//16 33 34语句是优化 // 如果flag没有变成true,也就是说,任意相邻的两个数,左边的数小于右边, // 这时整个数组已经是有序的状态了,所以就不用再进行比较了,就可以break跳出循环了 } return array; /**冒泡排序 * 1.比较数组中两个相邻的元素的大小 如果第一个的数比第二个大就交换位置 * 2.每一次比较都会产生出一个最大,或者最小的数字 * 3.下一次可以少一次排序 * 4.依次循环,直到结束! */ } }
标签:sort,int,冒泡排序,array,排序,public From: https://www.cnblogs.com/123456HHH/p/17863342.html