從零開(kāi)始數(shù)據(jù)結(jié)構(gòu)與算法(一)之冒泡排序

前言

眾所周知,算法與JVM、源碼以及高并發(fā)等并列,是大廠的必考知識(shí)點(diǎn)之一。因此,掌握數(shù)據(jù)結(jié)構(gòu)與算法是很有必要的!
筆記分為數(shù)據(jù)結(jié)構(gòu)算法兩大部分,從最基礎(chǔ)的算法開(kāi)始,從零開(kāi)始掌握,爭(zhēng)取每天能夠?qū)W會(huì)一種數(shù)據(jù)結(jié)構(gòu)/算法即可。

快速開(kāi)始

常見(jiàn)的排序算法有6種,分別為:冒泡排序、選擇排序、插入排序、希爾排序、歸并排序以及快速排序,下面全部十種經(jīng)典排序算法的時(shí)間與空間復(fù)雜度表。


3af26595b2dbc49047a0c66e7ad4fd0f.png

1.冒泡排序

實(shí)現(xiàn)思想:像水中的泡泡一樣,按照從小到大或者從大到小的順序(一般是從小到大),依次將每一個(gè)元素遍歷對(duì)比后面的元素取出來(lái)最小(大)的放到最前面的位置。

package deepinsea;

import java.util.Arrays;

/**
 * @author deepinsea
 * @data 2021/6/10 13:44
 */
public class 冒泡排序 {
    public static void main(String[] args) {
        int[] arr = new int[]{2,8,5,6,9,7,1};
        System.out.println(Arrays.toString(arr));
        bubble(arr);    
        System.out.println(Arrays.toString(arr));
    }
    public static int[] bubble(int[] arr){
        // 外循環(huán),需要遍歷的元素個(gè)數(shù)
        for (int i = 0; i < arr.length-1; i++) {
            // 內(nèi)循環(huán),元素遍歷的次數(shù)
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }
}

我是Java白羊??,一只想做全棧的小羊,感謝大家的觀看ヾ(?°?°?)??!

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

相關(guān)閱讀更多精彩內(nèi)容

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