Day6 二維陣列,氣泡排序解析,陣列為引數的傳遞

2021-07-09 06:27:34 字數 1759 閱讀 6448

陣列:存放一組資料

兩種初始化:靜態初始化與動態初始化

靜態初始化:指定個數,但沒有全部初始化,則剩下的自動為0 如:a[4]={};

制定個數,並全部初始化

制定個數,但沒有初始化,則全部為0,但注意是有了「 」,表明是靜態初始化

指定個數,並指定下表初始化,則沒有初始化部分為0

動態初始化:指定個數,挨個賦值

指定個數,初始化一部分,則剩餘的值不確定

越界後的結果難以預料

%p 用於十六進製制輸出,而位址的輸出就是十六進製制輸出,輸出時0x代表後面的數字是十六進製制數字

陣列中的元素的位址是連續的

陣列名的位址=首元素的位址=陣列的位址=陣列名

計算陣列的元素數量:陣列的總位元組數/ 單個元素型別的位元組數= 陣列的長度

如: a[5]={}; sizeof(a)/ sizeof(int) 其中a代表陣列的首位址,所以sizeof會自動算出這個陣列的總長度

但是,若將a作為指標傳送則不行,因為它是將a當成乙個指標傳送過去,所以sizeof(a)算出來的值是作為指標的a的長度

陣列的元素作為函式的引數與普通的變數作為函式的引數是一樣的,因為雖是變數但有乙個確切的值

陣列名是乙個常量,它的值是陣列的首位址,其值不可改變,但裡面的內容可以改變

void a(int a,int length); 其中int a是陣列的形參,length是int型的形參,學完指標後,會已int * a來代替陣列的形參,而且接受的時候,其實也是已指標形式接收

傳遞的如果是個位址,則函式內會修改的是位址內的值,而如果傳遞的是乙個值,則修改的是複製過來的值,而不是位址內的值,所以結果或許會有些與預想的偏差這就是值傳遞與位址傳遞

僅用兩個變數彼此值交換

a=a+b;

b=a-b;

a=a-b;

氣泡排序:因為要分輪,且每輪比較次數不同,所以用雙層for迴圈計算,第乙個for代表比較輪數第二個for代表每一輪比較次數,與每次哪兩個值比較

簡解:輪數為len-1次,如a[6],五輪確認五個數,則剩下乙個數就自然確定了

次數為len-1-i,其中i代表輪數,因為i值通常取0,但第一輪的比較次數就為len-1次,所以為len-1-i

詳解:用len代表陣列長度,則比較輪數為len-1,因為六個數比較五輪,每輪確認乙個數,則五輪確認五個數,在前後兩數比較中,後面的數都比前面大,則最前面的最後乙個數自然就確定了

若輪數i的初始值為0,則比較次數為len-1-i次,因為每過一輪,確認乙個數,所以經過i輪確認i個數,第一輪比較次數為len-1 再第二輪比較次數為len-2,但用來表示輪數的i值通常取初值為0,所以比較的次數為len-1-i,減1是當i為0時,也要比較len-1次,每一輪,比較次數減一,即為len-1-i,i為遞增數

ps:從a[0]與a[1]比較到a[len-1]與a[len],因為下表要從開始用j來表示,即為a[j]與a[j+1],所以比較到len-1次時,為a[len-1]與a[len],

輪跟長度有關,次數跟輪有關,下標跟次數有關

二維陣列a[m][n],m個一維陣列,每個陣列有n個元素,總共有m*n個元素。

二維陣列的靜態賦值:

連續賦值遵循一維陣列的靜態賦值 int a[2][2]=;剩餘部分為0

分段賦值,a[2][4] = ,};缺少部分補0

動態賦值:依舊是乙個乙個賦值

在靜態初始化中,行可以不寫,列必須寫,因為列可以算出

在動態初始化中,啥都不能省略

雙重for迴圈輸出二維陣列的值

在xcode中,可以用變數來指定陣列的長度,其它平台不行

一維陣列day 6

語法格式 資料型別 陣列名 new 資料型別 陣列長度 或 資料型別 陣列名 從第乙個數起,陣列的下標是從0開始。1 迴圈賦值 2 隨機數組 1 使用for迴圈進行便歷 for int i 0 i 2 使用增強forfor int num a 3 呼叫 陣列tostring方法sout arrays...

二維陣列實現氣泡排序

實現了一維陣列的排序,同時二位陣列也可實現排序。利用c 實現,以下為主函式 includeusing namespace std define n 3 void paixu int p n void out int p n int main 形參為指向一維陣列的指標,將二維陣列存到一維陣列之中,將一...

VBA 二維陣列氣泡排序例項

學習vba的同學經常會用到陣列的排序,網上介紹的程式演算法一般都是舉例一維陣列,增加了公升降序選擇,排序列號選擇,以及標題行數等實際需要使用的引數 private sub test dim arr sheets sheet1 select row sheets sheet1 usedrange.ro...