Java之冒泡排序(二重循环)

public class BubbleSort {
    public static void main(String[] args) {
//        1.求所有数字的和
//        2. 随机产生一个 1-3 之间的数,判断数列中是否有此数
//        3.进行排序,并输出结果
        int[] nums = {8,4,2,1,23,100,12};
        //求数组总和
//        int sum = 0;
//        for(int i =0; i < nums.length;i++){
//            sum += nums[i];
//        }
//        System.out.println(sum);

        //验证随机数
//        int random = (int)(Math.random()*3)+1;
//        System.out.println("随机数:"+random);
//        boolean flag = false;
//        for (int i = 0 ; i < nums.length;i++){
//            if(random == nums[i]){
//                flag = true;
//                break;
//            }
//        }
//
//        if(flag){
//            System.out.println("存在");
//        }else{
//            System.out.println("不存在");
//        }

        //打印原始数组
        System.out.println("排序前:");
        for(int i = 0 ; i < nums.length;i++){
            System.out.print(nums[i]+"\t");
        }
        System.out.println();

        //冒泡排序
        for(int i = 0 ; i < nums.length - 1; i ++){
            for(int j = 0 ; j < nums.length - 1 - i  ; j ++){
                if(nums[j] > nums[j+1]){
                    int temp = nums[j];
                    nums[j]  = nums[j+1];
                    nums[j+1] = temp;
                }
            }
        }
        /*
        *
        * 假设数组为 nums={	2	12	4	20	1}
        冒泡流程:
        第0趟: 当前 > 下一个  ,如果是:则交换
	    2	4	12	1	【20】  ->一轮比较完毕,可以得到一个最大值
        第1趟:
	    2	4	1	【12】
        第2趟:
	    2	1	【4】
        第3趟:
	    1	【2】

        	元素个数->趟数
	  ===>	n元素个数   ->   n-1轮
	     趟数    (i)         0   1    2    3
	     每一层的比较次数(j)  4   3    2     1
            寻找关系:
            i = n -1;
            i + j = n -1;
            j = n -1 - i;
        * */
        System.out.println("排序后:");
//        Arrays.sort(nums);//用Java自带函数运算

        for(int i = 0 ; i < nums.length;i++){
            System.out.print(nums[i]+"\t");
        }
    }
}

Java之冒泡排序(二重循环)_第1张图片

你可能感兴趣的:(Java)