Linux代码对齐方式:
单行对齐:命令模式下“==”自动对齐
多行对齐:选中多行,按一下=
全局对齐:gg=G
按gg光标回起始行,按G到最后一行
经验:
一组数据比最大值最小值:用循环输入一次处理一次
一组相同类型的数据的集合
作用:一次性定义多个相同类型的变量
语法:类型说明符 数组名 [常量表达式],本质为 int[10] a;(与int a类似)
类型说明符:int,short,long,long long
数组名:数组所在空间的名字,数组首元素的地址
[] //表示定义一个数组
常量表达式:表示数组的长度---变量的个数,本质是偏移量,针对首元素的地址的偏移,如a[5],则a[0]的地址为0x100,则a[3]对0x100偏移了3个地址位。
如: int array[5]; //定义了一个数组,里面存有5个int型变量,有20个字节
数组给值方式:
初始化:int a[5] = {1,2,3,4,5};//里面的值为元素
元素使用(元素访问):
语法:a[元素所在位置]
如:printf(“%d” ,a[3]);
scanf("%d" , &a[i]);
数组具有 1.连续性----存储在一片空间内
2.有序性----元素依次存储
3.单一性----单一类型元素
数组越界值为乱码;
数组初始化时未定义的值自动赋值为0;
数组不初始化,其值为任意随机值。
数组长度可以省略,但必须有值(变量),因为编译器可以自己计算数组长度。
数组赋值不能整体赋值:
如:a[5]={1,2,3,4,5};
可变数组:int a;
scanf("%d",&a);
int b[a]; //即可控制数组长度,但该数组不能初始化
字符常量是按照字符数组形式存储的,如“tom”这三个字符储存的是s[4],存有‘t’‘o’‘m’‘\0’
,其中‘\0’为字符结束标志。有‘\0’的才是字符串,否则就只是字符数组。
puts:输出字符串,输出时自动换行,使用方法----puts(“数组名”)
gets:输入字符串,使用方法----gets(数组名)---需要头文件#include
字符数组的值赋予另一个字符数组:strcpy(c1,c2) //将c2的字符给与c1
为合适的位置选择合适的数。(比大小)
选择排序:
冒泡排序:
插入排序:在有序的数列里插入一个数(两个定好的数,新来一个数,与两者对比,从而找到合适的位置---如果是一堆数,则是找到前者比自己小,后者比自己大的位置)
例子(部分):
for(j=0;j0&&b[i-1]>t)//与插入数前方值对比,并挪动值
{
b[i]=b[i-1];
i--;
} //找位置
b[i]=t;//插入数
}
判断代码优劣
1.算法稳定性
2.效率:时间复杂度----运行到n,用的次数。(对n求无穷)
空间复杂度-----对内存的占用。
二分查找:
前提:数据有序
思想:运用begin、end、mid三个值,先找到end与begin的中间值mid,比较要找的数与mid的大小,大则mid替代begin,小则替代end,直达mid与查找值想等。