首页 > 代码库 > 祭奠被遗忘的冒泡排序

祭奠被遗忘的冒泡排序

冒泡算法(从小到大):

1、依次比较相邻的两个元素。若第一的值大于第二的值,则交换它们;

2、每轮将会把大值交换到数组尾;

3、因而每轮比较的次数越来越少;

public class BubbleSort_1 {    public void BubbleSort_1(int[] score) {        // 方法一:        int j, i, temp;        for (i = score.length - 1; i > 0; i--) {// 从小到大            for (j = 0; j < i; j++) {                if (score[j] > score[j + 1]) {// 每轮把最大的交换到后面                    temp = score[j];                    score[j] = score[j + 1];                    score[j + 1] = temp;                }            }            showDate(score); // 打印        }    }    public void BubbleSort_2(int[] score) {        // 方法二        int j, i, temp;        for (i = 0; i < score.length; i++) {// 从小到大            for (j = i; j < score.length; j++) {                if (score[i] > score[j]) {                    /* >时,每轮最小的交换到前面,<时每轮最大的交换到前面 */                    temp = score[i];                    score[i] = score[j];                    score[j] = temp;                }            }            showDate(score);// 打印        }    }    public void BubbleSort_3(int[] score) {        // 方法三:        int j, i, temp;        for (i = 1; i < score.length; i++) {// 从大到小            temp = score[i];            for (j = i; j > 0 && score[j] > score[j - 1]; j--) {// 每轮最大的交换到前面                score[j] = score[j - 1];            }            score[j] = temp;            showDate(score); // 打印        }    }    public void showDate(int[] n) {        for (int i = 0; i < n.length; i++) {            System.out.print("score[" + i + "] = " + n[i] + " ");        }        System.out.println();    }    public static void main(String[] args) {        BubbleSort_1 s = new BubbleSort_1();        int score[] = { 88, 99, 44, 77, 33, 22 };        s.BubbleSort_1(score);        //s.BubbleSort_2(score);        //s.BubbleSort_3(score);    }}

 

祭奠被遗忘的冒泡排序