成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從Java角度看冒泡排序和多維數組

存儲
本文介紹了數組冒泡排序、多維數組、二維數組的動態和靜態初始化。詳細介紹了常用的一種冒泡排序算法,通過案例分析冒泡排序的過程。詳細介紹了定義二維數組的動態和靜態初始化的格式。

[[428846]]

一、數組冒泡排序

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

2.具體分析冒泡排序的整個過程

首先是從第一個數值開始,將相鄰的兩個數值依次進行比較,直到最后的兩個數值完成比較。將前一個數值比后一個數值大,則它們就交換位置。數組中的最后一個元素就是最大的數值。然后除了最大的數值,將剩余的數值繼續兩兩比較,前一個數值比后一個數值大,則它們就交換位置。一直比較到倒數的第二個數值,因為倒數最后一個數值是最大的。依此類推,重復以上的過程,直到最終完成這個排序。

3.冒泡排序的案例

例如:

  1. public static void main(String[] args) { 
  2. // TODO Auto-generated method stub 
  3. int[] arr = {26, 43, 11, 37, 8}; 
  4. System.out.println("冒泡排序前:"); 
  5. print(arr);                         //打印冒泡排序前 
  6. System.out.println("冒泡排序后:"); 
  7.     bubbleSort(arr);                    //調用冒泡排序方法 
  8. print(arr);                         //打印冒泡排序后 
  9. //定義冒泡排序方法 
  10. public static void bubbleSort(int[] arr) { 
  11. //定義外層循環,外循環只需要比較arr.length-1次就可以了 
  12.     for (int i = 0; i < arr.length - 1; i++) {       
  13.         //定義內層循環 
  14.         for (int j = 0; j < arr.length - 1 - i; j++) {      //-1為了防止索引越界,-i為了提高效率 
  15.             if(arr[j] > arr[j+1]) {             //比較相鄰元素 
  16.                 //下面的代碼表示用交換兩個數 
  17.                 int temp = arr[j];               
  18.                 arr[j] = arr[j + 1]; 
  19.                 arr[j+1] = temp
  20.             } 
  21.         } 
  22.         System.out.print("第"+(i+1)+"輪排序后"); 
  23.         print(arr);//每輪比較結束后打印數組 
  24. //定義打印數組方法 
  25. public static void print(int[] arr) { 
  26. //遍歷數組 
  27. for (int i = 0; i < arr.length; i++) { 
  28.         System.out.print(arr[i] + " "); 
  29. System.out.print("\n"); 

輸出的結果是:

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

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

二、什么是多維數組

用一個數組來保存某個班級學生的成績,如果要統計一個學校各個班級學生的成績。我們就需要用到多維數組。多維數組簡單說是數組的嵌套。

三、二維數組動態初始化

(一)二維數組動態初始化是由系統自動給元素賦初始值。

(二)二維動態初始化方式

1.第一種方式

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

上面代碼相當于定義了一個2x3的二維數組,二維數組長度為2,二維數組中的每個元素又是一個長度為3的數組。

2.第二種方式

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

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

四、二維數組靜態初始化

(一)二維數組靜態初始化是為二位數組的每個元素賦值。

(二)二維數組靜態初始化方式

  1. 類型[][] 數組名 = new 類型[][]{值1, 值2, ……,}; 

  1. 類型[][] 數組名 = {{值11, 值12, …… },  
  2.                  {值21, 值22, ……} 
  3.                     …… 
  4.                  }; 

例如:

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

五、定義一個不規則的二維整型數組,輸出其行數和每行的元素個數,并求數組所有元素的和。

例如:

  1. public static void main(String[] args) { 
  2. // TODO Auto-generated method stub 
  3. int b[][]={{11},{21,22},{31,32,33,34}};//定義二維數組 
  4. int sum=0;//保存數組所有元素的和值 
  5. System.out.println("數組b的行數:" + b.length); 
  6. //遍歷數組 
  7. for(int i=0;i<b.length;i++){ 
  8.         System.out.println("b["+i+"]行的數值個數:" + b[i].length); 
  9.         for(int j=0;j<b[i].length;j++){ 
  10.             sum +=b[i][j]; 
  11.         } 
  12. System.out.println("數組所有元素的和:" + sum); 
  13.  

輸出的結果是:

  1. 數組b的行數:3 
  2. b[0]行的數值個數:1 
  3. b[1]行的數值個數:2 
  4. b[2]行的數值個數:4 
  5. 數組所有元素的和:184 

六、總結 

本文介紹了數組冒泡排序、多維數組、二維數組的動態和靜態初始化。詳細介紹了常用的一種冒泡排序算法,通過案例分析冒泡排序的過程。詳細介紹了定義二維數組的動態和靜態初始化的格式。定義一個不規則的二維整型數組,輸出行數和每行的元素的個數,幫助大家的理解。希望通過本文的學習,對你有所幫助!

本文轉載自微信公眾號「Java進階學習交流」,可以通過以下二維碼關注。轉載本文請聯系Java進階學習交流公眾號。

 

責任編輯:武曉燕 來源: Java進階學習交流
相關推薦

2020-02-04 09:53:05

數據安全數據泄漏信息安全

2019-04-28 16:10:50

設計Redux前端

2010-06-07 10:44:09

2022-11-21 07:58:10

Java排序冒泡排序

2023-05-05 06:43:13

算法冒泡排序元素

2015-05-05 11:04:31

CoreOS自動化運維

2022-07-15 13:01:13

Kotlin編程語言Java

2009-11-20 09:24:10

PHP多維數組排序

2020-07-05 09:12:42

java冒泡排序算法

2011-07-04 11:05:03

數組java

2019-11-27 10:11:22

勒索病毒網絡安全

2020-11-19 10:09:55

漏洞逆向角度證書覆蓋

2017-09-06 15:54:14

2012-04-29 10:37:28

APP

2010-07-16 09:00:20

開源RedOffice紅旗2000

2009-11-16 17:20:04

PHP多維數組排序

2010-10-08 13:21:03

JavaScript多維數組

2009-06-14 18:43:57

LinuxWindows對比

2011-04-20 14:07:37

冒泡排序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品成人网 | 麻豆国产一区二区三区四区 | 波多野结衣一区二区三区 | 亚洲一区中文字幕 | 在线观看成人小视频 | 久久久999成人 | 亚洲精品日本 | 国产一区二区视频在线观看 | 欧美性久久 | 日韩一区二区在线视频 | 久草精品在线 | 中文一区二区 | 日韩免费视频一区二区 | 欧美日韩一区二区在线播放 | 亚洲欧美综合 | 日本精品一区二区三区在线观看视频 | 亚洲欧美日韩一区 | 国产精品美女久久久久久免费 | 黄色大片免费看 | 成人高清在线视频 | 一区二区三区四区视频 | 欧美日韩精品国产 | 玖玖视频免费 | 日韩欧美一级精品久久 | 精品欧美色视频网站在线观看 | 国产av毛片 | 亚洲男女视频在线观看 | 三级av在线 | 亚洲天堂av网| 欧美一区二区成人 | 色综合久久伊人 | 亚洲a视| 国内精品免费久久久久软件老师 | 免费看黄色片 | 欧美不卡一区二区三区 | 国产91久久精品一区二区 | 成人av免费| 欧美激情精品久久久久 | 午夜爱爱网 | 91成人在线 | 免费在线观看一区二区 |