一、数组
1.概念:数组就是一个可以存储一组或一系列数值的变量。
2.数组构成:数组是由一个或多个数组元素组成的
3.数组元素:一每个数组元素由键(Key)和值(Value)构成
4.键:“键”为元素的识别名称,也被称为数组下标
5.值: “值”为元素的内容
6.映射: “键”和“值”之间存在一种对应关系,称之为映射
7.类型划分:根据键的数据类型,可以将数组划分为索引数组和关联数组,前者使用数字作为键,后者使用字符串作
为键。
8.数组分为索引数组和关联数组
索引数组的概念:索引数组是指键名为整数的数组。默认情况下,索引数组的键名是从0开始,并依次递增。它主要
适用发于利用位置(0、1、2……)来标识数组元素的情况。另外,索引数组的键名也可以自己指定。
关联数组的概念:关联数组是指键名为字符串的数组。通常情况下,关联数组元素的“键”和“值”之间有一定的业务逻辑
关系。因此,通常使用关联数组存储一系列具有逻辑关系的变量。关联数组的“键”都是字符串,并与“值”之间具有一一
对应的关系。
二、数组的基本使用
1.array()语言结构方式
$fruits = array('apple', 'grape', 'pear'); // 省略键名
$sports = array(2 => 'basketball', 4 => 'swimming'); // 指定键名
2.数组的定义——赋值方式
$arr[] = 123; // 存储结果:$arr[0] = 123
$arr[] = 'hello'; // 存储结果:$arr[1] = 'hello'
$arr[4] = 'PHP'; // 存储结果:$arr[4] = 'PHP'
$arr['name'] = 'Tom'; // 存储结果:$arr['name'] = 'Tom'
$arr[] = 'Java'; // 存储结果:$arr[5] = 'Java'
3.访问数组
$sub = ['PHP', 'Java', 'C', 'Android'];
$data = ['goods' => 'clothes', 'num' => 49.90, 'sales' => 500];
echo $sub[1]; // 输出结果:Java
echo $sub[3]; // 输出结果:Android
echo $data['goods']; // 输出结果:clothes
echo $data['sales']; // 输出结果:500
4.遍历数组
$info = ['id' => 1, 'usr' => 'Jacie', 'age' => 18];
// 使用方式一
foreach ($info as $k => $v) {
echo $k . ': ' . $v . ' '; // 输出的结果:id: 1 usr: Jacie age: 18
}
// 使用方式二
foreach ($info as $v) {
echo $v . ' '; // 输出的结果:1 Jacie 18
}
5.数组操作符
$num = [2, 4];
$alp = ['a', 'b', 'c'];
$mer1 = $num + $alp;
$mer2 = $alp + $num;
print_r($mer1); // 输出结果:Array ( [0] => 2 [1] => 4 [2] => c )
print_r($mer2); // 输出结果:Array ( [0] => a [1] => b [2] => c )
三、数组查找
1.顺序查找法
顺序查找法是最简单的查找法,只需按照数组中元素的保存顺序,利用待查的值与数组中的元素从前往后一个一个的进行比较,直到找
到目标值或查找失败。
2.二分查找法
二分查找法:针对有序数组的一种查找法,它的查询效率非常高。
实现原理:每次将查找值与数组中间位置元素的值进行比较,相等返回;不等则排除掉数组中一半的元素,然后根据比较结果大或小,再
与数组中剩余一半中间位置元素的值进行比较,以此类推,直到找到目标值或查找失败。
四、数组排序
1.冒泡排序
冒泡排序:是计算机科学领域中较简单的排序算法。
实现原理:按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。冒泡排序比较的轮数
是数组长度减1,每轮比较的对数等于数组的长度减当前的轮数。
缺点:冒泡排序的效率很低,在实际中使用较少。
2.简单选择排序
简单选择排序:是一种非常直观的排序算法。
实现原理:从待排序的数组中选出最小或最大的一个元素与数组的第1个元素互换,接着再在剩余的数组元素中选择最小的一个与数组
的第2个元素互换,依次类推,直到全部待排序的数组元素排序完成。
3.快速排序
快速排序:是对冒泡排序的一种优化。
实现原理:首先选择一个基准元素,通常选择待排序数组的第1个数组元素。通过一趟排序,将要排序的数组分成两个部分,其中一部
分比基准元素小,另一部分比基准元素大,然后再利用同样的方法递归的排序划分出的两部分,直到将所有划分的数组排序完成。
4.插入排序
插入排序:也是冒泡排序的优化,是一种直观的简单排序算法。
实现原理:通过构建有序数组元素的存储,对未排序数组的元素,在已排序的数组中从最后一个元素向第一个元素遍历,找到相应位置
并插入。其中,待排序数组的第1个元素会被看作是一个有序的数组,从第2个至最后一个元素会被看作是一个无序数组。
数组
最新推荐文章于 2022-09-14 17:14:02 发布