冒泡排序

package blog;

import java.util.Scanner;

/**
 * 冒泡排序的思想:每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来
 * @author 霍礼平 2017年8月10日
 *
 */
public class 冒泡排序 {

    public static void main(String[] args) {
        while (true) {
            // 变量t用于交换
            int t = 0;
            // 输入数据,从大到小排列
            int a[] = new int[100];
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入要排序的个数");
            int sum = sc.nextInt();
            System.out.println("要排序依次是:");
            for (int i = 1; i <= sum; i++) {
                a[i] = sc.nextInt();
            }
            // 核心
            for (int i = 1; i <= sum - 1; i++) {// 外层for是比较的次数,sum个数所以比较sum-1次

                for (int j = 1; j <= sum - i; j++) {
                    /*
                     * 假如总共10(sum=10)个数,第1(i=1)轮,应比较9(sum-i)次
                     * 例如:第一次比较:第一个数与其他的9个数比较。第一个数的下标是j=1,比较完后比较的那个数要归位
                     * 
                     */
                    if (a[j] < a[j+1]) {
                        t = a[j];
                        a[j] = a[j+1];
                        a[j+1] = t;
                    }

                }
            }
            System.out.print( "从大到小依次: ");
            for (int i = 1; i <= sum; i++) {
                System.out.print(a[i] + " ");
            }
            System.out.println();

        }
    }

}

运行结果:

posted @ 2017-08-22 16:50  体重270  阅读(151)  评论(0编辑  收藏  举报