java冒泡排序——新人冒泡

来源:互联网 发布:深圳美生创谷淘宝地址 编辑:程序博客网 时间:2024/05/22 13:21

这个升序的冒泡排序主要由创建随机数组(generate)和冒泡排序(BubbleSort)两个函数组成。

一.随机生成排序数组

public static int [] generate(int index){        int[] arr=new int[index];        for(int i=0;i<index;i++)        {            arr[i]=(int)(Math.random()*100);        }        return arr;     }

二.实现冒泡排序的main函数

里面有个Arrays.toString(arr)是博主刚刚学的,可以让数组输出时少写个for循环。
ps:Array里面还有个copyOf用于数组的复制也很好。

public static void main(String[] args) {        Scanner scan=new Scanner(System.in);        System.out.print("请规定你的数组大小");        int index=scan.nextInt();        int arr[]=generate(index);        System.out.println("原数组"+Arrays.toString(arr));        int Temp;        for(int i=0;i<arr.length-1;i++){            for(int j=0;j<arr.length-i-1;j++){                if(arr[j]>arr[j+1]){                    Temp=arr[j];                    arr[j]=arr[j+1];                    arr[j+1]=Temp;                      }                   }        }        System.out.println("排序后的数组"+Arrays.toString(arr));    }

三.完整代码

scanner是用来提取你输入的数组大小

import java.util.Arrays;import java.util.Scanner;public class BubbleSort {    public static void main(String[] args) {        Scanner scan=new Scanner(System.in);        System.out.print("请规定你的数组大小");        int index=scan.nextInt();        int arr[]=generate(index);        System.out.println("原数组"+Arrays.toString(arr));        int Temp;        for(int i=0;i<arr.length-1;i++){            for(int j=0;j<arr.length-i-1;j++){                if(arr[j]>arr[j+1]){                    Temp=arr[j];                    arr[j]=arr[j+1];                    arr[j+1]=Temp;                      }                   }        }        System.out.println("排序后的数组"+Arrays.toString(arr));        scan.close();    }    public static int [] generate(int index){        int[] arr=new int[index];        for(int i=0;i<index;i++)        {            arr[i]=(int)(Math.random()*100);        }        return arr;     }}

下面实例分析,博主复制来的,我自己都懒得看。。。有耐心的可以配合main里面的两个for循环看一下对理解有帮助


初始序列为100,50,84,57,61,10,86,升序排(小的在前,大的在后);
第一轮第一次,100与50对比,交换位置,结果:50,100,84,57,61,10,86
第一轮第二次,100与84对比,交换位置,结果:50,84,100,57,61,10,86
第一轮第三次,100与57对比,交换位置,结果:50,84,57,100,61,10,86
第一轮第四次,100与61对比,交换位置,结果:50,84,57,61,100,10,86
第一轮第五次,100与10对比,交换位置,结果:50,84,57,61,10,100,86
第一轮第六次,100与86对比,交换位置,结果:50,84,57,61,10,86,100
将100冒出来了,现在序列为:50,84,57,61,10,86,100
第二轮第一次,50与84对比,位置不换
第二轮第二次,84与57对比,交换位置,结果:50,57,84,61,10,86,100
第二轮第三次,84与61对比,交换位置,结果:50,57,61,84,10,86,100
第二轮第四次,84与10对比,交换位置,结果:50,57,61,10,84,86,100
第二轮第五次,84与86对比,位置不换
将86冒出来了,现在序列为:50,57,61,10,84,86,100
第三轮第一次,50与57对比,位置不换
第三轮第二次,57与61对比,位置不换
第三轮第三次,61与10对比,交换位置,结果:50,57,10,61,84,86,100
第三轮第四次,61与84对比,位置不换
将84冒出来了,现在序列为:50,57,10,61,84,86,100
第四轮第一次,50与57对比,位置不换
第四轮第二次,57与10对比,交换位置,结果:50,10,57,61,84,86,100
第四轮第三次,57与61对比,位置不换
将61冒出来了,现在序列为:50,10,57,61,84,86,100
第五轮第一次,50与10对比,交换位置,结果:10,50,57,61,84,86,100
第五轮第二次,50与57对比,位置不换
将57冒出来了,现在序列为:10,50,57,61,84,86,100
第六轮第一次,10与50对比,位置不换
将50冒出来了,现在的序列为:10,50,57,61,84,86,100
通过上面的分析总结出如下几点,找出规律,通过程序即可完成冒泡算法的实现。


互勉

原创粉丝点击