冒泡排序

冒泡排序:

对未排序的数组中的元素从头到尾依次比较相邻的两个元素,若第前一个元素大于后面一个元素那么就交换两个元素

的位置,经过一轮的比较,那么最大的那个元素,会存到数组的最后一位,每比较一次就会有一个正确的数字放到正确的位置

例如: 6,4,9,1,3 --> 升序

4,6,1,3,9 -->一轮排序

4,1,3,6,9 -->二轮排序

1,3,4,6,9 --> 三轮排序

1,3,4,6,9 --> 四轮排序

1,3,4,6,9 --> 五轮排序

public class MaoPaoSortArray { 
    public static void main(String[] args) {
        //创建数组 
        int[] arr = new int[10];
        //向数组中随机存储0-100之间的值 
        for(int i = 0; i<arr.length;i++) { 
            arr[i] = (int)(Math.random()*100);
        }
        //打印没有排序之前数组值 
        //对数组进行排序操作
        //1.数组中所有的元素都需要进行一次比较,所以通过循环满足每一个元素比较 
        for(int i = 0 ;i<arr.length;i++) { 
            //控制比较次数
            //arr.length-1的目的是为了方式数组下标越界异常 原因在于 j+1 会到大数组的长度 
            //-i随着比较次数的逐渐增多,每一次都会有一个正确数放到正确的位置,那么通过-i操作
            //减少当前需要排序的元素个数 
            for(int j = 0; j<arr.length-1-i;j++) {
                //具体元素的比较 
                if(arr[j] > arr[j+1]) { 
                    //交换 
                    int tmp = arr[j]; 
                    arr[j] = arr[j+1]; 
                    arr[j+1] = tmp; }
            }
            System.out.print("第"+(i+1)+"次排序的结果:\t"); 
            for(int m = 0;m<arr.length;m++) { 
                System.out.print(arr[m]+"\t");
            }
           System.out.println(); 
        } 
    }
}

推荐阅读更多精彩内容