美文网首页
冒泡排序

冒泡排序

作者: daysting | 来源:发表于2019-07-17 11:24 被阅读0次

    冒泡排序:

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

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

    例如: 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(); 
            } 
        }
    }
    

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/avqqlctx.html