day05 陣列 排序

2021-07-09 01:48:46 字數 4195 閱讀 8727

#pragma mark-

陣列//

變數實際上就是乙個容器,陣列也是乙個容器,,這個容器可以儲存更多的內容。

//1.

陣列屬於構造型別

//2.

具有相同資料型別的成員組成一組陣列。

//3.

儲存不同型別的陣列有對應的名稱,如:

ios班

,安卓版,//

同理,整數型別:陣列中的成員都是整數,浮點型陣列,陣列中的成員是浮點型。

//4.

陣列是由多個成員組成而成,每個成員被稱為陣列元素。

//定義陣列型別:

//型別修飾符

陣列名【常量表示式】=;

//2.

中設定陣列中元素的個數,即陣列的儲存空間,只是常量表示式,不能是變數表示式,

//3.

初始值之間使用『,

』間隔。

//方式1//

定義整數陣列,陣列中儲存

3個元素:1,

2,3//int a[3]=;

//方式

2 沒有賦值的元素,自動設定初始值為

0;//int a[5]=;

//方式

3//int c[5]=;

//方式

4//int c=;

//誤區:

//1.

指定的陣列元素個數,

<

設定初始的數量大於指定元素個數

>

//int e[3]=;

//2.

既沒有指定元素個數,也沒有賦初值。

//int f=;

//定義陣列後,陣列的儲存空間是連續的。

//陣列的儲存空間:元素個數

*元素占用的位元組

//printf("%lu\n",sizeof(a));

//訪問陣列元素

//浮點型陣列:

//float array[5]=;

//字元型陣列

//    char a1[6]=;

//    char a2[6]="iphone";

/*1.

不能一次整體呼叫整數陣列全部元素的值,基本資料型別變數中值儲存乙個資料,陣列中儲存多個資料,不能通過陣列變數呼叫所有的陣列元素

2.訪問陣列元素:使用下標實現陣列名【下標】;

3.下標:陣列元素在陣列中的序號,陣列中的元素是有序的。每個元素都有序號,序號從

0開始遞增,最後乙個元素的序號是

n-1,

n表示陣列元素的個數。

4.下標必須是整型常量

*///

遍歷陣列

//按照順序,從陣列的第乙個元素開始訪問,訪問到最後乙個元素結束

//使用

for迴圈實現陣列訪問

//迴圈和陣列的關係很好

//int age[5]=;

//    for (int i=0; i<5; i++)

// 反向遍歷

//按照從後面向前的順序,輸出陣列元素

//    for (int i=4; i>=0; i--)

//修改陣列元素

//根據陣列下標確定需要修改陣列元素

//遍歷陣列

//    int array=;

//    for (int i=0; i<5; i++)

//    printf("\n-------

修改後--------\n");

//    array[0]=8;

//    array[3]=6;

//    for (int i=0; i<5; i++)

//越界:

//1.

使用陣列下標時,超出下標範圍

//    int e[3]=;

//    printf("%d",e[3]);

//2.

陣列越界很危險,一旦越界,即訪問了不屬於陣列的儲存空間

//3.

編譯器不會檢測陣列元素下標的越界,因此運算元組是必須保證沒有越界。

//注意事項:

//1.

定義陣列

和陣列元素

//2.

陣列作為乙個整體不可以直接參與運算

//練習

定義乙個具有

20個元素的整形資料,每個元素的取值範圍是【30,

70】之間,求陣列元素的和

//    int a[20]=;

//    int sum=0;

//    for (int i=0; i<20; i++)

//    printf("sum=%d",sum);

//練習

2 :複製乙個陣列,即

2個陣列容器一樣,把其中乙個陣列中的元素複製到另外乙個陣列中。

//    int array1[5]=;

//    int array2[5]=;

//    //

複製陣列

//        for (int i=0; i<5; i++)

//       

//    //

列印//       for (int i=0; i<5; i++)

//     

//練習:生成

2個陣列

,每個陣列都有

10個元素

,元素取值範圍【

20,40

】之間,

陣列對應元素相加,放到另外乙個陣列中。

//    int array1[10]=;

//    int array2[10]=;

//    int array3[10]=;

//    printf("--------array1----------\n");

//    for (int i=0; i<10; i++)

//    printf("\n--------array2----------\n");

//    for (int i=0; i<10; i++)

//    printf("\n--------array3---------\n");

//    for (int i=0; i<10; i++)

#pragma mark-

陣列排序

sort

/*氣泡排序的規律有

2種:公升序(小

-大),降序(大到小)

//排序的基本思路:每次將相鄰的

2個數進行比較,按照公升序或者降序的順序進行交換,直到所有的數字順序全部正確。

//排序:

//原始資料:

28 36 19 2 23

第一趟:

第一次:

28 36 19 2 23

第二次:

28 19 36 2 23

第三次:

28 19 2 36 23

第四次:

28 19 2 23 36

第二趟:

第一次:

19 28 2 23 36

第二次:

19 2 28 23 36

第三次:

19 2 23 28 36

第三趟:

第一次:

2 19 23 28 36

第二次:

2 19 23 28 36

第四趟:

第一次:

2 19 23 28 36

//規律:

n個元素比較

n-1,

次數等於陣列個數-趟數

*///    int array[5]=;

//    for (int i=0; i<5-1; i++)

//   

//        }

//    }

//    for (int i=0; i<5; i++)

//隨機產生

10個【20,

40】排序,公升序

intarray[

10]=;

//隨機數

for(

inti=

0; i<

10; i++)

//排序

for(

inti=

0; i<10-

1; i++) }}

printf(

"\n排序後

\n");

for(

inti=

0; i<

10; i++)

return0;

DAY05(冒泡,選擇排序)

1 氣泡排序 優化前 public class maopao 分析 前乙個與後乙個比較大小,如果前乙個比後乙個大則交換順序,每一次迴圈,得到的就是最大的那個數在末尾 假設陣列元素有2 5 1 6 3 迴圈第0次 2 5 1 6 3 2 1 5 6 3 2 1 5 6 3 比較了,沒交換 2 1 5 ...

JS學習 day05 陣列

一 陣列定義 1 一系列有序 索引 的資料集合。2 格式 資料1,資料2,3 建立方式 1 字面量 賦值式 var arr 1,2,3 2 內建建構函式建立陣列 var arr new array 1,2,3 注意 當括號裡只有乙個資料時,表示陣列長度 length 4 陣列長度length表示陣列...

java學習筆記day05 陣列

陣列 是一種容器,可以同時存放多個資料值。陣列的特點 1.陣列是一種引用資料型別 2.陣列當中的多個資料,型別必須統一 3.陣列的長度在程式執行期間不可改變 陣列的初始化 在記憶體當中常見乙個陣列,並且象其中賦予一些預設值。兩種常見的初始化方式 1.動態初始化 指定長度 2.靜態初始化 指定內容 動...