①理解陣列陣列是乙個變數,由資料型別相同的一組元素組成。是記憶體中一串連續的空間。②熟練使用一維陣列解決實際問題(重點)
③使用陣列實現常用演算法(難點)
④掌握二維陣列的使用
①識別符號:陣列的名稱,用於區分不同的陣列②陣列元素:向陣列中存放的資料
③元素下標:對陣列元素進行編號
④元素型別:陣列元素的資料型別
①陣列下標從0開始②陣列元素可以通過下標訪問
③陣列長度固定不變,避免陣列越界
語法:陣列的應用例項:一維陣列的初始化:datatype[
] arrayname =
newdatatype
[size]
;//例
int[
] nums;
string[
] names =
newstring[15
];double
salarys =
newdouble[55
];
陣列長度和預設值://宣告的同時初始化
datatype[
] arrayname =
;datatype[
] arrayname =
newdatatype
;//錯誤:宣告初始化陣列是不需要指定陣列的大小
int years[6]
=;//錯誤:宣告並初始化數是不需要指定陣列的大小
int[
12] months =
;//正確:元素個數為2(days.length == 2)
int days=
;//正確:
int array=
;
①建立陣列後就不能再修改陣列的代銷
②基本資料型別陣列的預設值為0
③char型陣列元素的預設值為/u0000
④布林型別陣列的預設值為false
⑤引用型別陣列的預設值為null
需求:
1.求陣列中的最大值和最小值
2.定義乙個整型陣列,賦值後求出奇數個數和偶數個數
3.查詢輸入的數字咋陣列中的下標,沒有找到則下標為-1
4.隨機打亂陣列中的元素順序
5.使用foreach簡化陣列的遍歷
6.陣列的複製
語法:二維陣列的動態賦值:datatype[
] names;
double
scores new
double[5
][3]
;int
animates;
animates new
int[4]
[4];
string stunames =
;string coursenames =
;final
int row = stunames.length;
final
int col = coursenames.length;
double
scores =
newdouble
[row]
[col]
;for
(int i =
0; i < row; i++
)}
原理:**區別:**://對於乙個亂序的陣列,進行氣泡排序,公升序排序
//第一輪比較
//首先拿第乙個元素18與後乙個元素9進行比較,18>9,進行交換,陣列變成
//然後拿第二個元素18與後乙個元素1進行比較,18>1,進行交換,陣列變成
//然後拿第三個元素18與後乙個元素2進行比較,18>2,進行交換,陣列變成
//然後拿第四個元素18與後乙個元素7進行比較,18>7,進行交換,陣列變成
//第一輪比較結束後,最大的18移動到了陣列的末尾,一共進行了4次比較
//第二輪比較
//首先拿第乙個元素9與後乙個1進行比較,9>1,進行交換,陣列變成
//然後拿第二個元素9與後乙個2進行比較,9>2,進行交換,陣列變成
//然後拿第三個元素9與後乙個7進行比較,9>7,進行交換,陣列變成
//由於後一位18經上一輪比較已確定為最大數,所以9不用與18進行比較
//經過第二輪比較,第二大的9移動到了陣列的倒數第二位,一共進行了3次比較
//第三輪比較
//首先拿第乙個元素1與後乙個2進行比較,1<2,不進行交換,陣列變成
//然後拿第二個元素2與後乙個7進行比較,2<7,不進行交換,陣列變成
//由於後一位9經上一輪比較,已經確定了位置,所以,7不用與9進行比較
//經過第三輪比較,第三大的7移動到了陣列的倒數第三位,一共進行了2次比較
//第四輪比較
//首先拿第乙個元素與後乙個2進行比較,1<2,不進行交換
//由於第三個元素位置已經在上一輪中確認,所以不用拿第2個元素和第三個元素比較
//本輪一共進行了1次比較。
//到此為止,氣泡排序結束。
//根據上述操作,可以得出一些氣泡排序的基本規律(讀者可以用其他長度的陣列進行試驗證明):
//1、氣泡排序的總的排序輪數,為陣列的元素個數-1,即陣列長度length - 1(即n個數,每次確定乙個數的位置,只用比較n-1次就能確定完所有數的位置,最後一次只剩乙個數,沒有必要比較);
//2、氣泡排序每輪排序執行的總的比較操作次數j為陣列元素個數減去1再減去當前輪數(因為每比較一輪,就確定乙個數的位置,就代表下一輪少比較乙個數),即每輪排序執行的總的比較次數為
//length - 1 - 當前輪數;
//3、每一輪比較中,比較的兩個元素為第j個元素和第j + 1個元素,其中j為當前比較的次數,即第一次比較第1個元素和第2個元素,第二次比
//較第2個元素和第3個元素,第三次比較第3個元素和第4個元素
//根據上述規律,可以寫出**
int[
] nums =
;for
(int i =
0; i < length -
1; i++)}
}//上述**即為氣泡排序的完整**,如果要進行降序排序,只需將if處的》符號替換為《符號即可。
①選擇排序的**有兩種情況,一種是從後往前排,即公升序排序,每次找出剩餘元素的最大值或者降序排序,每次找出剩餘元素的最小值。
②另一種是從前往後排,即公升序排序,每次找出剩餘元素的最小值或者降序排序,每次找出剩餘元素的最大值)
原理:假設以公升序排序,每次找出陣列中剩餘元素的最大值。
①首先,宣告乙個變數儲存最大值下標,每輪查詢先將下標更新為陣列第乙個元素。
②然後將拿陣列中的所有元素依次和最大值進行比較。
③在比較過程中如果有某個值比最大值大時,將最大值下標更新為該處元素的下標。然後繼續進行後續比較。
④進行過一輪比較後,確定首輪中元素的最大值下標,然後將最大值下標除的元素與陣列最後乙個元素進行交換。
⑤進行第二輪比較時,先將最大值下標更新為陣列第乙個元素下標,即0,再進行比較,此時由於最後一位已確定,所以比較次數較第一輪比較少一次。
**實現:
int
nums =
;int maxindex;
//外層迴圈控制排序輪數
for(
int i =
0; i < nums.length -
1; i++)}
//查詢完畢後,將最大值與陣列最後乙個未確定的元素進行交換
int temp = nums[maxindex]
; nums[maxindex]
= nums[nums.length -
1- i]
; nums[nums.length -
1- i]
= temp;
}
iOS陣列常用的操作
最近在看陣列,總結一下還是不錯的 陣列初始化方法 id array 返回乙個空陣列 id arraywitharray nsarray anarray 從乙個已有陣列,類似複製另乙個陣列,可以把nsarray賦值給nsmutablearray id arraywithcontentsoffile n...
ruby 常用的陣列操作
1.1,1,3,5 1,2,3 1,3 取兩個陣列中都有的元素,但只取乙個,不重複取。2.1,2,3 3 1,2,3,1,2,3,1,2,3 如果 號後面跟的是數字n,將原先陣列中的所有元素重複n次,串聯起來。相當於普通數字的乘法操作。1,2,3 1 2 3 如果 號後面跟的是字串,也將返回字串。3...
Python常用的陣列操作
1.在python學習的過程中,經常要建立陣列,對陣列裡面的元素進行操作,所以我們需要掌握python中對於陣列操作的基本語法 2.下面是一些常用的陣列建立 賦值的一些語法 其中需要使用到python中的numpy包,我們使用對陣列操作的相關函式需要匯入這個包 import numpy as npn...