数组 2024.01.27

一维数组的定义和引用

类型名  数组名[整型常量表达式]

数组名即标识符,要满足标识符的使用规则

[   ] 里面最少是1 

float s[100];   100个单精度浮点型变量

void 空类型 不能创建任何变量,包括数组

a[i] 数组里面第 i 个元素的值

int  a[10]      定义这行   [ ] 是类型说明符,不是下标运算符

数组元素在内存中存储的三大特性:

单一性、有序性、连续性

对数组的访问: int a[10]

从a[0]开始

数组的越界访问:a[-1] 可能会占用其他变量的空间,造成严重错误

数组不得整体引用:

a = 10 ;  ❌   a等价于&a[0]

左右两边类型不匹配

去掉变量名,只剩变量名

数组的数组名为地址

初始化:初始化列表里个数小于等于元素个数

int a[10] = {1,2,3}  ;  

1 2 3 0 0 0 0 0 0 0 

int a[10] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

会造成越界访问,不能超过元素的个数。

求元素的个数:可以用数组总的字节数 / 每个元素的字节数

int length = sizeof(a) / sizeof(a[0]);

int 整型 最小值 16进制  0x80000000

例题:求数组的最大值 求次大值

先求出最大值 在最大值的基础上再用for循环求次大值

排序的算法:冒泡排序、快速排序、选择排序、插入法排序

(没有特殊说明,默认排序为升序)

排序的目的:为了快速的查找

选择排序:在合适的位置上放上合适的数

假设共n个元素

次数:n-1 + n-2 + n-3 + ........+1

排序时间复杂度 算法复杂度 O(n)=n*n  

逆序的算法复杂度:nlgn

冒泡排序:数组中相邻的两个元素两两比较,小的放前,大的放后

注意:程序中要体现出相邻元素比较

插入法排序

注意:要把b数组的元素顺序拷贝到a数组

算法复杂度:n * n

空间复杂度也高

可以不用b数组

二分法查找:效率高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值