一、一维数组
一维数组的定义方式为
类型说明符 数组名 [常量表达式0
例如:int a[10] 定义了一个整型数组,数组名为a,此数组有10个元素。
说明:
1.数组名的命名规则和变量名相同,遵循标识符命名规则。
2.在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。
3.用变量当元素个数时,不能进行初始化。
4.数组的数组名代表数组中的首元素地址。
例如: printf ("%p\n",&a[0]);和printf ("%p\n",a);二者相等。
5.数组元素的表示形式为:
数组名[下标]
6.定义数组的“[ ]”说明为一个数组,为类型说明符,并不是下标运算符。
7.数组在存储空间内的三大特性:单一性、有序性、连续性。
8.数组的越界访问,超出了规定的a[]。
9.int len = sizeof(a)/ sizeof(a[0]);计算数组的个数。
二、选择排序
在数组合适的位置放上合适的数。
将第一个数分别与后面的数进行比较,将最小的放到最前面,依次进行。
算法复杂度为O(n)=,空间复杂度为O(1)。
三、冒泡排序
相邻两个元素两两比较,小的放前,大的放后。
相邻的两个元素进行比较,依次将大的放在最后,在进行第二次循环,排除掉最后一个进行前面n-1的比较。
算法复杂度为O(n)=空间复杂度为O(1)。
四、插入排序
将一个记录插入到已排好序的序列中,从而得到一个新的有序序列,将序列的第一个数据看成是一个有序的子序列,然后从第二个记录逐个向该有序的子序列进行有序的插入,直至整个序列有序。
当初始序列为正序时,算法复杂度为O(n)=n
初始序列为反序时,算法复杂度为O(n)=
空间复杂度为O(1)。