Loading

上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 数组是 PHP 中非常强大、灵活的一种数据类型,和 Java、C 等静态语言不同,我们在初始化 PHP 数组的时候不必指定大小和存储数据的类型,在赋值的时候可以通过数字索引,也可以通过字符串索引的方式: 基于 PHP 数组的强大特性,我们可以轻易实现更加复杂的数据结构,比如栈、队列、列表、集合、字典 阅读全文
posted @ 2020-04-17 01:31 字符串爱了数组 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 散列表 散列表(HashTable,也叫哈希表),是根据键(Key)直接访问在内存存储位置的数据结构。 其实现原理是: 通过散列函数(也叫哈希函数)将元素的键映射为数组下标(转化后的值叫做散列值或哈希值),然后在对应下标位置存储记录值。当我们按照键值查询元素时,就是用同样的散列函数,将键值转化数组下 阅读全文
posted @ 2020-04-17 01:14 字符串爱了数组 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 插入查找 $container[ $middle ]) { $lower = $middle + 1; } else { return $middle; } } return false; } // + // | 方案测试 | php || PHPStorm 右键 Run // + echo ins 阅读全文
posted @ 2020-04-16 00:39 字符串爱了数组 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 前面我们提到的二分查找适用于有序线性表的查找,此外针对二分查找还有升级版的插值查找,以及利用斐波那契原理进行查找的斐波那契查找,在后面的随笔里会补充对应的实现,一般我们使用二分查找就可以了。 我们也提到二分查找不适用于高速增长的海量数据,因为维护这个排序非常麻烦,所以我们引出索引这种数据结构。 索引 阅读全文
posted @ 2020-04-16 00:14 字符串爱了数组 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 二分查找的引入 在介绍二分查找之前,对于基于数字索引的数组元素的查找,我们可能第一反应都是遍历这个数组,直到给定数组元素值和待查找的值相等时,返回索引值并退出,否则一直遍历到最后一个元素,如果还是没有找到则返回 1,这样的查找虽然是简单粗暴了点,但是对于规模不大的数据集,也是没什么问题的,不过很明显 阅读全文
posted @ 2020-04-15 23:55 字符串爱了数组 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 线性表(即线性数据结构,如数组和链表)的常规排序算法,包括冒泡、插入、选择、归并和快排,其中综合性能最好的就是快排(快速排序),所以快排在工程实践中也有大量的应用,比如很多编程语言都提供了排序函数,而这些排序函数基本都是基于快速排序实现的,比如 PHP 的数组排序函数 sort 就是如此。 今天我们 阅读全文
posted @ 2020-04-15 20:42 字符串爱了数组 阅读(2145) 评论(1) 推荐(1) 编辑
摘要: 快速排序 实现原理 归并排序算法虽好,但是不是原地排序算法,需要消耗额外的内存空间,今天我们要介绍的是常规排序里综合排名最高的排序算法:快速排序,江湖人称「快排」。 快排的核心思想是这样的: 如果要排序数组中下标从 p 到 r 之间的一组数据,我们选择 p 到 r 之间的任意一个数据作为 pivot 阅读全文
posted @ 2020-04-15 20:32 字符串爱了数组 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 归并排序 实现原理 所谓归并排序,指的是如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 归并排序使用了分治思想,分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。说到这里,可能你就能联想起我们之前 阅读全文
posted @ 2020-04-15 20:23 字符串爱了数组 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 选择排序 实现原理 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间。但是选择排序每次会从未排序区间中找到最小的元素,将其放到已排序区间的末尾。图示如下: 同样,可以在 VisuAlgo 上看动态图:https://visualgo.net/zh/sorting。 示例代码 选择排 阅读全文
posted @ 2020-04-15 11:59 字符串爱了数组 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 插入排序 实现原理 插入排序的原理是:我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,算 阅读全文
posted @ 2020-04-15 11:43 字符串爱了数组 阅读(149) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页