1. 程式人生 > >4. 數組和排序算法1

4. 數組和排序算法1

bottom ora ul li text tom file 數據 menu hit

1. 數組的定義

一組相關變量的集合

一個數組實際上就是一連串的變量

數組中的變量必須是相同的數據類型

數組可以分為一維數組、二維數組和多維數組

例如:numbers[100]來代替直接聲明100個獨立變量number0,number1,....,number99


2. 一維數組

技術分享

2.1 數組的聲明

兩種聲明方式:

數據類型[] 數組名  //首選
數據類型 數組名[]  //效果相同,C語言的格式,不推薦

舉例:

int[] myList    //推薦
int myList[]    //不推薦

2.2 數組的初始化

2.2.1 動態初始化

數組定義與為數組分配空間和賦值的操作分開進行

數組名 = new 數組類型[數組大小]

例如:

myList  = new int[10];

2.2.2 靜態初始化

在定義數組的同時就為數組元素分配空間並賦值

數組名 = {元素1,元素2,元素3,….}

數組名 = 數組類型[]{元素1,元素2,元素3,….}

例如:

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

2.2.3 錯誤的初始化

int[] month_days = new int[12];
month_days = {31,28,31,30,31,30,31,31,30,31,30,31}; 

註意:只能在數組聲明時用大括號對來自定義數據,否則只能分別對每個下標元素進行賦值

int[] month_days = new int[12];
month_days[0] = 31;
month_days[1] = 28;
    ……  

2.3 一維數組練習和實踐

1、數組名表示什麽?

2、arr[0]表示什麽?

3、怎麽獲取數組長度?

4、如何使用數組下標取值?

5、如何使用數組遍歷取值 for & foreach ?

6、如何給數組所有元素求和?

7、如何找出數組種最大值,最小值?

8、數組的深復制,淺復制有何不同?

9、練習:一個班有10個同學的數學成績需要記錄,要計算班級成績總和,平均成績,最高分,最低分,及格人數等數據。

    int[] studentScores = { 55, 66, 77, 88, 35, 89, 90, 52, 22, 76 };

    int studentScores[] = { 55, 66, 77, 88, 35, 89, 90, 52, 22, 76 };

3. 二位數組

技術分享

3.1 聲明與初始化

3.1.1 聲明

int[][] a;  //推薦
int a[][];  //不推薦   

3.1.2 初始化

  1. 動態初始化

    數據類型[][] 數組名稱 = new 數據類型 [行數][列數] ;
    

    例如:

    int [][] num = new int [3][3]; //定義了三行三列的二維數組  
    num[0][0] = 1; //給第一行第一個元素賦值  
    num[0][1] = 2; //給第一行第二個元素賦值  
    num[0][2] = 3; //給第一行第三個元素賦值  
    
    num[1][0] = 4; //給第二行第一個元素賦值  
    num[1][1] = 5; //給第二行第二個元素賦值  
    num[1][2] = 6; //給第二行第三個元素賦值  
    
    num[2][0] = 7; //給第三行第一個元素賦值  
    num[2][1] = 8; //給第三行第二個元素賦值  
    num[2][2] = 9; //給第三行第三個元素賦值 
    
  2. 靜態初始化

    數據類型 [][] 數組名稱 = {{第一行元素},{第二行元素},...} ;  
    數據類型 [][] 數組名稱 = new 數組類型{{第一行元素},{第二行元素},...} ; 
    

    例如:

    int[][] num = {{1,2,3},{4,5,6},{7,8,9}};
    int[][] num = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
    

二維數組其實就是矩陣

3.2 二維數組練習

案列:某校幼兒園有3個班,每個班有5個人,計算各班平均年齡?計算全園平均年齡?計算總人數?

    int students[][] = { { 3, 6, 4, 5, 4 }, { 2, 3, 5, 3, 2 }, { 3, 4, 6, 2, 4 } };

    int[][] students = { { 3, 6, 4, 5, 4 }, { 2, 3, 5, 3, 2 }, { 3, 4, 6, 2, 4 } };

4. 排序算法

4.1 冒泡排序(必須掌握)

技術分享

4. 數組和排序算法1