1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        從Java角度看冒泡排序和多維數(shù)組

        共 2911字,需瀏覽 6分鐘

         ·

        2021-10-14 19:39

        點(diǎn)擊上方“Java進(jìn)階學(xué)習(xí)交流”,進(jìn)行關(guān)注

        后臺(tái)回復(fù)“Java”即可獲贈(zèng)Java學(xué)習(xí)資料

        青山隱隱水迢迢, 秋盡江南草未凋。?

        ????前面幾篇文章用Java帶大家一起了解了幾個(gè)游戲小項(xiàng)目,感興趣的小伙伴可以點(diǎn)擊文章觀摩下,手把手教你用Java打造一款簡單故事書(上篇)、手把手教你用Java打造一款簡單故事書(下篇)手把手教你用Java打造一款簡單考試系統(tǒng)(上篇)、手把手教你用Java打造一款簡單考試系統(tǒng)(下篇)手把手帶你用Java打造一款對(duì)對(duì)碰游戲(上篇)、手把手帶你用Java打造一款對(duì)對(duì)碰游戲(下篇)、手把手帶你用Java實(shí)現(xiàn)點(diǎn)燈游戲(上篇)、手把手帶你用Java實(shí)現(xiàn)點(diǎn)燈游戲(下篇),接下來的幾篇文章是關(guān)于Java基礎(chǔ)的,希望對(duì)大家的學(xué)習(xí)有幫助,歡迎大家在討論區(qū)留言。


        一、數(shù)組冒泡排序

        1.在冒泡排序過程中,不斷地比較數(shù)組中相鄰的兩個(gè)元素,將小數(shù)放在前面,大數(shù)放在后面。

        2.具體分析冒泡排序的整個(gè)過程

        首先是從第一個(gè)數(shù)值開始,將相鄰的兩個(gè)數(shù)值依次進(jìn)行比較,直到最后的兩個(gè)數(shù)值完成比較。將前一個(gè)數(shù)值比后一個(gè)數(shù)值大,則它們就交換位置。數(shù)組中的最后一個(gè)元素就是最大的數(shù)值。然后除了最大的數(shù)值,將剩余的數(shù)值繼續(xù)兩兩比較,前一個(gè)數(shù)值比后一個(gè)數(shù)值大,則它們就交換位置。一直比較到倒數(shù)的第二個(gè)數(shù)值,因?yàn)榈箶?shù)最后一個(gè)數(shù)值是最大的。依類推,重復(fù)以上的過程,直到最終完成這個(gè)排序。

        3.冒泡排序的案例

        例如:

        public static void main(String[] args) {// TODO Auto-generated method stubint[] arr = {26, 43, 11, 37, 8};System.out.println("冒泡排序前:");print(arr);                         //打印冒泡排序前System.out.println("冒泡排序后:");    bubbleSort(arr);                    //調(diào)用冒泡排序方法print(arr);                         //打印冒泡排序后}//定義冒泡排序方法public static void bubbleSort(int[] arr) {//定義外層循環(huán),外循環(huán)只需要比較arr.length-1次就可以了    for (int i = 0; i < arr.length - 1; i++) {              //定義內(nèi)層循環(huán)        for (int j = 0; j < arr.length - 1 - i; j++) {      //-1為了防止索引越界,-i為了提高效率            if(arr[j] > arr[j+1]) {             //比較相鄰元素                //下面的代碼表示用交換兩個(gè)數(shù)                int temp = arr[j];                              arr[j] = arr[j + 1];                arr[j+1] = temp;            }        }        System.out.print("第"+(i+1)+"輪排序后");        print(arr);//每輪比較結(jié)束后打印數(shù)組}}//定義打印數(shù)組方法public static void print(int[] arr) {//遍歷數(shù)組for (int i = 0; i < arr.length; i++) {        System.out.print(arr[i] + " ");}System.out.print("\n");}

        輸出的結(jié)果是:

        冒泡排序前:26 43 11 37 8 冒泡排序后:第1輪排序后26 11 37 8 43 第2輪排序后11 26 8 37 43 第3輪排序后11 8 26 37 43 第4輪排序后8 11 26 37 43 8 11 26 37 43

        我們來分析上面這個(gè)案例,定義了一個(gè)數(shù)組,數(shù)組的值是26、43、11、37、8。定義了一個(gè)冒泡排序的方法,通過兩層循環(huán)比較相鄰的兩個(gè)數(shù),我們看下這個(gè)排序是如何進(jìn)行的。首先第1輪排序是26和43、43和11、11和37、37和8比較4次,把最大值放在最后,所以第1輪排序后的結(jié)果是26、11、37、8、43。第2輪排序是26和11、11和37、37和8比較3次,把最大值放在倒數(shù)第二位。第2輪排序得到的結(jié)果是11、26、8、37、43。第3輪排序是11和26、26和8比較,第4輪排序是11和8比較,最終的結(jié)果是8、11、26、37、43。


        二、什么是多維數(shù)組

        用一個(gè)數(shù)組來保存某個(gè)班級(jí)學(xué)生的成績,如果要統(tǒng)計(jì)一個(gè)學(xué)校各個(gè)班級(jí)學(xué)生的成績。我們就需要用到多維數(shù)組。多維數(shù)組簡單說是數(shù)組的嵌套。


        三、二維數(shù)組動(dòng)態(tài)初始化

        (一)二維數(shù)組動(dòng)態(tài)初始化是由系統(tǒng)自動(dòng)給元素賦初始值。

        (二)二維動(dòng)態(tài)初始化方式

        1.第一種方式

        int[ ][ ] a = new int[2][3];

        上面代碼相當(dāng)于定義了一個(gè)2x3的二維數(shù)組,二維數(shù)組長度為2,二維數(shù)組中的每個(gè)元素又是一個(gè)長度為3的數(shù)組。

        2.第二種方式

        int[ ][ ] a = new int[3][ ];

        二維數(shù)組第二種方式和第一種類似的,只是數(shù)組中每個(gè)元素長度不確定。

        四、二維數(shù)組靜態(tài)初始化

        (一)二維數(shù)組靜態(tài)初始化是為二位數(shù)組的每個(gè)元素賦值。

        (二)二維數(shù)組靜態(tài)初始化方式

        類型[][] 數(shù)組名 = new 類型[][]{值1, 值2, ……,};


        類型[][] 數(shù)組名 = {{值11, 值12, …… },                  {值21, 值22, ……}                    ……                 };

        例如:

        int[][] a = new int[][]{{5, 2}, {3, 1, 2}, {6}}; int[][] a = {{1, 2, 3}, {4, 5, 6}, {3, 2, 1}};

        五、定義一個(gè)不規(guī)則的二維整型數(shù)組,輸出其行數(shù)和每行的元素個(gè)數(shù),并求數(shù)組所有元素的和。

        例如:

        public static void main(String[] args) {// TODO Auto-generated method stubint b[][]={{11},{21,22},{31,32,33,34}};//定義二維數(shù)組int sum=0;//保存數(shù)組所有元素的和值System.out.println("數(shù)組b的行數(shù):" + b.length);//遍歷數(shù)組for(int i=0;i        System.out.println("b["+i+"]行的數(shù)值個(gè)數(shù):" + b[i].length);        for(int j=0;j            sum +=b[i][j];        }}System.out.println("數(shù)組所有元素的和:" + sum);
        }

        輸出的結(jié)果是:

        數(shù)組b的行數(shù):3b[0]行的數(shù)值個(gè)數(shù):1b[1]行的數(shù)值個(gè)數(shù):2b[2]行的數(shù)值個(gè)數(shù):4數(shù)組所有元素的和:184


        六、總結(jié)

        本文介紹了數(shù)組冒泡排序、多維數(shù)組、二維數(shù)組的動(dòng)態(tài)和靜態(tài)初始化。詳細(xì)介紹了常用的一種冒泡排序算法,通過案例分析冒泡排序的過程。詳細(xì)介紹了定義二維數(shù)組的動(dòng)態(tài)和靜態(tài)初始化的格式。定義一個(gè)不規(guī)則的二維整型數(shù)組,輸出行數(shù)和每行的元素的個(gè)數(shù),幫助大家的理解。希望通過本文的學(xué)習(xí),對(duì)你有所幫助!

        -------------------?End?-------------------

        往期精彩文章推薦:

        歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

        想加入Java學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

        萬水千山總是情,點(diǎn)個(gè)【在看】行不行

        瀏覽 37
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            黄 片 成 人 片 免费 | 中国毛片儿 | 屁股翘起来趴好挨c | 大屌中文字幕 | 天天摸夜夜操 | 国产精品白浆一区二小说 | 欧美亚洲老女人屄操老男人 | 亚洲第一福利视频 | 国产大屁股视频 | 国产系列在线播放 |