1.数组是有序数据的集合,数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来惟一地确定数组中的元素。
数组去掉变量名,剩下类型名。
数组的数组名代表首元素的地址名。
数组不的整体赋值。
int a[i] "[]"为类型说明符。
数组存放的特性:
单一性:数组中各元素所占的字节数相同。
有序性:下标小的元素在下标大的元素之前。
连续性:数组的地址之间没有间隔。
2.一维数组的定义和引用
1.一维数组的定义
一维数组的定义方式为
类型说明符 数组名[常量表达式]
说明:
(1)数组名的命名规则和变量名相同,遵循标识符命名规则。
(2)在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。
(3)常量表达式中可以包括常量和符号常量,不能包含变量,即数组的大小不依赖于程序运行过程中变量的值。
(4)类型名不能为空类型。
2.一维数组的引用
1.数组必须先定义,然后使用。C语言规定只能逐个引用数组元素而不能一次引用整个数组。
数组元素的表示形式为
数组名[下标]
下标可以是整型常量或整型表达式。
注意:定义数组时用到的“数组名[常量表达式]”和引用数组元素时用到的“数组名[下标]”的区别,
访问数组时,如果超出下标,会发生越界访问。
3.一维数组的初始化
(1)在定义数组时对数组元素赋予初值。如:int a[5] = {1,2,3,4,5};
(2)可以只给一部分元素赋值。如: int a[10]={0,1,2,3,4}; 这表示给前5个元素赋初值,后五个元素的值为0。
(3)如果想使一个数组中全部元素值为0,可以写成: int a[10] = {0};
(4)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度,但若数组长度与提供初值的个数不相同,则数组长度不能省略。如:
int a[5] = {1,2,3,4,5}; 可以写成 int [] ={1,2,3,4,5};
算法复杂度:算法复杂度是用来衡量算法运行时间和空间需求的一个概念。
空间复杂度:空间复杂度表示算法运行过程中所占用的内存空间与输入数据规模之间的关系。同样使用“大O”符号来表示:
•O(1) 表示常数空间复杂度,意味着算法运行所需的额外空间不随输入数据规模的增加而增加。•O(n) 表示线性空间复杂度,意味着算法运行所需的额外空间与输入数据规模成正比。
选择排序法:在数组合适的位置上放上合适的数。 算法复杂度为n的平方
冒泡排序法:相邻两个元素两两比较,小的放前,大的放后。 算法复杂度为n的平方
插入法排序: 算法复杂度为n的平方