算法
数据结构-PHP通过 Array 类对象实现 "栈"
这篇文章是展示如何使用PHP语言实现栈(Stack)这种数据结构,Stack也是一种线性结构,相比 Array 而言,Stack 对应的操作是 Array 的子集,只能从一端添加元素,也只能从一端取出元素,是一种 Last In First Out(LIFO),即 后进先出 的结构,Stack 的应
2020-10-20 02:36:44阅读全文
数据结构-PHP通过 Array 类对象实现 "队列"
这篇文章是展示如何使用PHP语言实现队列(Queue)这种数据结构,Queue也是一种线性结构,相比 Array 而言,Queue 对应的操作是 Array 的子集,只能从一端(队尾)添加元素,也只能从另外一端(队首)取出元素,是一种 First In First Out(FIFO),即 先进先出
2020-10-20 19:26:16阅读全文
数据结构-PHP 类对象实现 ‘链表’
这篇文章是展示如何使用PHP语言实现 链表(Linked List) 这种数据结构,Linked List 是一种最简单的动态数据结构,学习 Linked List 可以帮助更深入地理解指针和递归,可以用来组织更复杂的数据结构,它的特点是数据存储在 节点(Node) 中,节点中还存储了指向下一个节点
2020-10-20 23:47:59阅读全文
数据结构-PHP通过链表类对象实现 "栈"
这篇文章是展示如何使用PHP语言实现的链表类(LinkedList),然后通过链表来实现的 栈(Stack) 只能从栈顶添加元素,也只能从栈顶取出元素,是一种 Last In First Out(LIFO),即 后进先出 的结构。
2020-10-21 02:12:45阅读全文
PHP通过带尾指针的链表实现'队列'
这篇文章是展示通过 PHP 语言实现一种带尾指针的链表,然后通过链表来实现队列,其中链表的头元素 head 是用于列队出队的,它的时间复杂度 O(1),若在 head 的基础上实现链表尾部入队时间度为 O(n),为了降低入队操作的时间复杂度,可以给链表维护一个带有尾指针的变量 tail,这样每次入队
2020-10-21 09:45:14阅读全文
二分搜索树介绍&PHP 定义节点
这篇文章是介绍 二叉树 和 二分搜索树,然后通过 PHP 代码定义一下 二分搜索树(Binary Search Tree) 的节点。
2020-10-22 09:59:05阅读全文
PHP 实现递归删除链表元素
这篇文件介绍一下 递归,递归的本质是将原来的问题转化为更小的同一个问题,解决这些更小问题的过程。下面通过两个递归的例子帮助学习对递归的理解。
2020-10-22 12:55:15阅读全文
数据结构-PHP 实现二分搜索树
这篇文章是介绍 二叉树 和 二分搜索树,然后通过 PHP 代码定义一下 二分搜索树 的节点,使用递归思想操作向二分搜索树添加元素,然后实现了递归判断二分搜索树上是否包含某个元素,最后分别实现了前序遍历、中序遍历、后序遍历 二分搜索树。
2020-10-23 20:11:32阅读全文
数据结构-PHP 二分搜索树的层序遍历(队列实现)
前面文章介绍了二分搜索树的 前序遍历、中序遍历、后续遍历,这篇文章主要介绍一下如何使用 队列 实现二分搜索树的 层序遍历。
2020-10-25 20:38:58阅读全文
数据结构-PHP 映射(Map)实现
这篇文章主要介绍如何实现 映射(Map),映射是一个存储(键,值)数据对的数据结构(key-value),它的特点是根据键(key)去寻找值(value),下面主要介绍如何使用 链表 去实现 映射(Map)和使用 二分搜索树(Binary Search Tree) 去实现 映射(Map)。
2020-10-26 18:26:19阅读全文
数据结构-PHP 输出数组中出现频率最高的前 k 个
这篇文章主要是通过一个问题实现过程,选择合适的数据结构,结合之前介绍过的 基于二分搜索树实现的映射(Map) 和 最小堆两种数据结构,可以将问题实现过程的时间复杂度降低。
2020-10-30 12:23:09阅读全文
数据结构-PHP 线段树的实现
线段树是基于区间的统计查询,线段树是一种 二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN),线段树是一颗 平衡二叉树。
2020-10-31 20:20:27阅读全文
数据结构-PHP 字典树(Trie)的实现
这篇文章介绍一下字典树的实现原理,又称单词查找树、Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树
2020-11-01 01:13:37阅读全文
数据结构-PHP 并查集(Union Find)
这篇文章主要介绍一下 并查集,并查集 支持合并(Union) 和 查询(Find)两种操作,其中 合并(Union) 表示把两个不相交的集合合并为一个集合,查询(Find) 表示查询两个元素是否在同一个集合中。
2020-11-02 08:48:31阅读全文
数据结构-PHP 平衡二叉树(AVL)的平衡原理
这篇文章主要介绍一下 平衡二叉树(AVL),对于 二分搜索树 来说,如果树上的 元素 是顺序 添加的,会导致数据退化成一个 链表,这样就会造成很严重的性能问题,此时就需要在 二分搜索树 的基础上,保证元素插入时平衡,在了解 AVL 之前,需要您对 二分搜索树 有一定的了解,可以参考之前的文章。
2020-11-08 02:52:00阅读全文
数据结构-PHP 哈希表(Hash Table)的实现
这篇文章主要介绍一下哈希表(Hash Table)的实现原理,哈希表(Hash Table) 也叫散列表,它通过把关键码值(key-value)映射到表中一个位置来访问,以加快其查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫哈希表(Hash Table)。
2020-11-18 10:26:18阅读全文
PHP 归并排序(Merge Sort)
归并排序 时间复杂度属于 O(nlogn) 级别的,相比于 O(n^2) 级别的排序算法,在处理大的数据量时,它的优势非常明显,下面通过原理图和代码演示介绍归并排序是如何实现 O(nlogn) 时间复杂度级别的。
2020-12-12 09:55:03阅读全文
Go中的channel怎么实现的???
相信大家在开发的过程中经常会使用到go中并发利器channel,channel 是CSP并发模型中最重要的一个组件,两个独立的并发实体通过共享的通讯channel进行通信。大多数人只是会用这么个结构很少有人讨论它底层实现,这篇文章讲写写channel的底层实现。
2021-08-23 23:22:41阅读全文
leetcode-Day1
1, 删除排序数组中的重复项https://leetcode-cn.com/leetb...给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
2021-09-14 19:24:25阅读全文
从正则搜索重新认识索引
最近一些查询接口加载时间逐渐变长,发现都是因为在筛选条件中有正则搜索,但是这些字段我们也都按照常规的方式设置了索引。而非正则搜索则没有影响,所以最直观的想法是:正则搜索在使用索引的地方不清楚,需要补一补。
2021-10-26 20:43:51阅读全文
将两个有序数组合并为一个有序数组
题目:给定两个有序数组,将其合并为一个有序数组。思路:采用双指针的方式,依次遍历两个数组 a,b。然后对比两个数组各个位置的元素,a小于b,则将a的元素存入新数组,然后a的指针加1,a==b,则将两个元素都放入新数组,下标都加1,如果a大于b,则将b的元素放入新数组,然后b的指针加1。
2021-12-14 09:31:40阅读全文
不寻常的 Java:StackTrace 扩展了 Throwable
在 Java 中你可以做一些你很少看到的事情,通常是因为它没有用处。但是,Java 中有一些不寻常的东西可能会非常有用。
2022-03-15 00:33:57阅读全文
第五届数字中国建设峰会举行,每日互动发布每日治数平台DIOS创新成果
第五届数字中国建设峰会及成果展览会近日在福州隆重开幕,数据智能上市企业每日互动(股票代码:300766)携数据智能创新成果亮相峰会现场(展位号:6号馆 6G01)。
2022-09-27 17:12:10阅读全文
基于Sketch设计平台的智能化组件图标研究与应用
本文相关的论文《基于Sketch设计平台的智能化组件图标研究与应用》录用并在《工业控制计算机》2022年第3期(3月25日出刊)上发表。此处内容仅做交流使用。
2022-11-17 10:28:38阅读全文
在实际应用中联合体union的妙用
关键字union,又称为联合体、共用体,联合体的声明和结构体类似,但是它的行为方式又和结构体不同,这里的行为方式主要指的是其在内存中的体现,结构体中的成员每一个占据不同的内存空间,而联合体中的所有成员共用的是内存中相同的位置。
2022-11-17 07:49:34阅读全文
独立产品灵感周刊 DecoHack #046 - 试试用 ChatGPT 写周刊
这个 APP 是独立开发者 @liseami1 的作品,花了300天细致打磨上线!产品设计了非常多炫酷的动效小细节,是一个非常好看的日程规划记录统计APP。“转山“是一种盛行于西藏地区的庄严活动。信徒们围绕冈仁波齐,笃定地重复脚下的路线转山App正是构想于此,帮助你规划行为,记录每一次专注。有兴趣可
2023-02-05 19:08:58阅读全文
openKylin 0.9.5版本正式发布,加速国产操作系统自主创新进程!
2023年1月12日,中国桌面操作系统根社区openKylin(开放麒麟)正式发布openKylin 0.9.5操作系统版本。此版本充分适应5G时代需求,打通平板,PC等设备,实现多端融合,弥补了国产操作系统的短板,有效推动国产操作系统自主创新进程。
2023-02-10 02:43:25阅读全文