冒泡排序---易懂

来源:互联网 发布:初学英语入门自学软件 编辑:程序博客网 时间:2024/05/29 15:56
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
packagecom.xbmd.share;
 
importjava.util.Scanner;
 
/**
 * 需求:将一个无序数组按照从小到大的顺序排列
 * 方法:冒泡排序
 * 实现:相邻的两个元素进行比较,如果这个数大于比较的数,就交换位置
 * 步骤:
 *      ①:第一轮比较完之后,最大元素冒出来
 *      ②:第二轮比较完之后,第二大元素冒出来
 *      依次类推...
 */
publicclass BubbleSort {
     
    publicstatic void main(String[] args) {
        //从键盘输入数
        Scanner input = newScanner(System.in);
        System.out.print("请输入数组的长度:");
        //数组长度赋给变量length
        intlength = input.nextInt();
        //动态创建数组
        int[] arr = newint[length];
        //为数组各个元素赋值
        System.out.println("为数组各元素赋值:");
        for(inti = 0; i < arr.length; i++) {
            arr[i]=input.nextInt();
        }
        System.out.println("排序前的数组:");
        print(arr);
        System.out.println();
        System.out.println("排序后的数组:");
        bubble(arr);
        print(arr);
         
    }
    privatestatic void bubble(int[] arr){//冒泡排序
        for(inti=0;i<arr.length-1;i++){//控制轮数
            for(intj=0;j<arr.length-i-1;j++){//控制每轮比较的次数
                if(arr[j]>arr[j+1]){//如果这个数大于比较的数,就交换位置
                    inttemp;
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }
    privatestatic void print(int[] arr){//打印数组
        for(inti : arr) {
            System.out.print(i+" ");
        }
    }
}

2. [图片] QQ截图20141008220701.png    

0 0