冒泡排序


冒泡排序是一種簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數(shù)列的工作是重復(fù)地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端。

算法描述

1、比較相鄰的元素如果第一個比第二個大,就交換它們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對,這樣在最后的元素應(yīng)該會是最大的數(shù);
3、針對所有的元素重復(fù)以上的步驟,除了最后一個;
4、重復(fù)步驟1?3,直到排序完成。

動圖演示

sort.gif

代碼實現(xiàn)

import java.util.Arrays;
import java.util.Scanner;

public class SoftDemo {
    public static void main(String[] args) {
        int[] intArray = new int[5];
        int num = 0;
        int len = intArray.length;

        //數(shù)組賦值
        System.out.println("請輸入數(shù)組各元素的值,以空格為單位:");
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < len; i++) {
            intArray[i] = scanner.nextInt();
        }
        System.out.print("你輸入的數(shù)組為:");
        System.out.println(Arrays.toString(intArray));

        //冒泡排序
        for (int i = len - 1; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                if (intArray[j] > intArray[j + 1]) {
                    int temp = intArray[j];
                    intArray[j] = intArray[j + 1];
                    intArray[j + 1] = temp;
                    num += 1;
                }

            }
        }
        System.out.println("排完序的數(shù)組順序為:" + Arrays.toString(intArray));
        System.out.println("排序所需要操作的步數(shù)為:" + num);
    }

}

運行結(jié)果

請輸入數(shù)組各元素的值,以空格為單位:
12 6 3 22 34
你輸入的數(shù)組為:[12, 6, 3, 22, 34]
排完序的數(shù)組順序為:[3, 6, 12, 22, 34]
排序所操作的步數(shù)為:3

總結(jié):雖然實際項目中,冒泡排序不常用到,不過面試筆試的時候,常常會考到,當(dāng)然他可能不會直接問你什么是冒泡排序,而是給你個應(yīng)用場景。比如規(guī)定有一個含有幾個元素的數(shù)組,然后要每次你將數(shù)組中最大的值和最后一個值進行交換(上一次已經(jīng)放到最后面的最大值不比較),最后數(shù)組要按照從小到大的順序排列,要你用代碼實現(xiàn)。毋庸置疑,就是要你寫出冒泡排序的算法實現(xiàn),只不過換了個方式問你。

文章參考:https://blog.csdn.net/csdn_baotai/article/details/80293679

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容