C 陣列高階 一維陣列的應用及起泡法思路

2021-09-01 04:50:32 字數 1498 閱讀 2116

c++複習——陣列

一、相關概念

1、具有相同屬性有內在聯絡的一批資料看作乙個有機的整體,稱為陣列

2、陣列中用序號或下表來區分各個資料,用來表示該資料在數中的序號,稱為下標(陣列元素的識別符號);陣列中的資料稱為陣列元素

3、引用陣列的好處:引入陣列就不需要在程式中定義大量的變數,大大減少程式中變數的數量,使程式精煉,而且陣列含義清楚,使用方便,明確地反映了資料間的聯絡。許多好的演算法都與陣列有關。熟練地利用陣列,可以大大地提高程式設計和解題的效率,加強了程式的可讀性。

二、一維陣列的定義和引用

1、定義格式:

型別識別符號 陣列名[常量表示式]

例如:inta[10]

說明:陣列名定名規則和變數名相同,遵循識別符號定名規則。

用方括號括起來的常量表示式表示下標值。

2、常量表示式的值表示元素的個數,即陣列長度。下標從0開始。

3、常量表示式中可以包括常量、常變數和符號常量,但不能包含變數。也就是說c++不允許對陣列的大小作動態定義。

4、陣列必須先定義後使用!

5、陣列元素的表示形式:陣列名[下標]

6、一維陣列的初始化:

a、inta[10]=;

b、可以只給一部分元素賦值:

int a[10]=只定義前五個元素,後五個元素預設為0;

c、在對全部陣列元素賦初始值時,可以不指定陣列長度:int a=;

三、一維陣列的應用

1、起泡法排序:

起泡法的思路是:將相鄰兩個數比較,將小的調到前頭。若有6個數(8,9,5,4,2,0)第一次比較第1和第2(8和9)的大小,如果第1個數大於第2個數,就把第2個數字置交換,第二次將第二和第三個數(9和5)交換……如此共進行5次,得到8,5,4,2,0,9的順序。可以看到:最大的數9已經沉底,小數上公升。

然後對餘下的前五個數按上法進行比較,經過四次比較,得到次大的數8。再進行第三趟比較,對餘下的四個數進行比較。不難看出,對6個數進行比較交換需要五次才能排好,第一趟兩數交換五次,第二趟四次……

總結:如果有n個數,要進行n-1次比較交換,在第一趟中要進行n-1次兩兩比較,在第j趟中要進行n-j次兩兩比較。

試題:設n=10,即陣列長度為11,a[0]不用,只用a[1]~a[10],可知需要進行9躺比較交換。

**如下:

/** example.cpp

** created on: 2012-3-30

* author: yangbo_hbzjk

*/#include

usingnamespacestd;

int main()} }

}}cout<<"the sorted numbers:"<

for(i=1;i<11;i++)

一維陣列應用

public class arraydemo system.out.println ch陣列的長度為 ch.length system.out.println intarray陣列的第2個元素為 intarray 1 system.out.println strarray陣列的第5個元素為 stra...

一維陣列及二維陣列

c語言一維陣列 float arr1 3 oc一維陣列 其實oc是沒有一維陣列二維陣列的概念的,但是可以實現一維陣列和二維陣列的功能 nsarray array1 nsarray arraywithobjects 2.5,3.6,4.7 nil c 語言二維陣列 float indexarray 2...

c語言高階 多維陣列本質及指標陣列的應用分析

一維陣列int a 10 在做函式引數時會退化為指標int a,但是二維指標做函式引數時卻不能寫成二級指標,那麼二維陣列的本質到底是什麼,可以通過 來驗證。int a 3 5 i 0,j 0 定義乙個3 5的二維陣列 int tmp 1 for i 0 i 3 i printf a d a 1 d ...