数组 :
一组具有相同类型的数据元素集合,在C语言中有一维数组,二维数组,多维数组,这些都可以看成一维数组。数组元素的存储地址是相邻的。
1.一维数组
多维数组也可以看成一维数组,如二维数组,可以看成一维数组,这个一维数组的元素为一个数组。
1)定义:int a[10]={
0};
数组元素的类型 数组名【整形表达式】= {
初始值};
数组元素的类型:
可以是任意的合法类型(基本类型、构造类型、指针类型等)都可以
typeof(a) --> 数组的类型
typeof(a[0]) -> 数组元素的类型
数组名:
对象的名字, “标识符”
整形表达式:
指定了数组里面元素的个数。
C语言规定定义数组的时候,要指定数组里面元素的个数
“常量表达式”
2)一维数组的引用
数组名[下标]; 注意数组的下表是从零开始,到n-1结束,注意防止越界。
3)一维数组在内存中的存放
在C语言中,用一块连续的存储空间,地址从低到高依次存放每个元素。
4)一维数组初始化
1.给每个数赋值
int a[5]={
1,2,3,4,5};
=>a[0]=1; a[1] = 2 .....
2.给部分赋值(其余自动补0)
int a[5] = {
1,2};
=>int a[5] = {
1,2,0,0,0};
3.可以省略元素个数(赋值默认为全部赋值)
int a[] ={
1,2,3,4,5};
=>int a[5];
2.排序
将数组中的元素交换位置,使它具有大小循序关系。
冒泡排序:
遍历整个数组,从第一个开始,每一个都与他的后一个进行比较,如果不满足循序则交换,如果要完成从小到大排序,那么每趟冒泡都会将最大的那个值替换到最后。
最好的情况下,本身就是有序
O(1)
最坏的情况下,本身是一个倒序
O(n^2)
关键代码:
for(m = 0; m < N-1; m++)
{
for(i = 0; i < N-1 - m; i++)
{