数据结构与算法
文章平均质量分 95
一枚小小菜鸟鸟
这个作者很懒,什么都没留下…
展开
-
手撕instanceof、new、原生ajax、深/浅拷贝、防抖/节流、call / apply / bind
参数是要拷贝的对象。基本思路和浅拷贝一样,不同的是在拷贝时,如果遇到复杂数据类型,就要递归调用(再生成一个新的地址,把简单数据类型捞过来,返回新的地址,给到当前key),这样可以保证只要遇到复杂数据类型,都可以生成新的地址。写法2:获取时间戳,第一次肯定会触发,因为new Date获取的是从1970年到现在的时间,delay总不能大于五十年吧……//其中0-未初始化 1-open调用完毕 2-send调用完毕 3-服务端返回了部分结果 4-服务端返回了所有结果。//4.事件绑定,处理服务端返回的结果。原创 2023-08-13 12:54:32 · 104 阅读 · 1 评论 -
数据结构(五)--- 冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序
那么第二个为黑色的数据index=5,第3个数据为黑色的数据index = 10(不存在)。对于N个数据项,比较次数为:(N - 1) + (N - 2) + (N - 3) + …如N^3 + 3n +1,大O表示法表示为:O(N³);上面所讲的对于7个数据项,比较次数为:6 + 5 + 4 + 3 + 2 + 1;希尔排序的效率和增量有直接关系,即使使用原稿中的增量(N/2)效率都高于简单排序。,先选出一个数据,将比其小的数据都放在它的左边,将比它大的数据都放在它的右边。快速排序的核心思想是。原创 2023-08-08 00:15:00 · 66 阅读 · 0 评论 -
数据结构(四)--- 树、二叉树、二叉搜索树、红黑树
如果树中的每一个节点最多只能由两个子节点,这样的树就称为二叉树;几乎所有的树都可以表示成二叉树形式。二叉树可以为空,也就是没有节点;若二叉树不为空,则它由根节点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。(1) 一个二叉树的第 i 层的最大节点树为:2(i-1),i >= 1;(2) 深度为k的二叉树的最大节点总数为:2k - 1 ,k >= 1;(3)对任何非空二叉树,若 n0 表示叶子节点的个数,n2表示度为2的非叶子节点个数,那么两者满足关系:n0 = n2 +1;原创 2023-08-07 10:04:44 · 99 阅读 · 0 评论 -
数据结构(三)--- 哈希表、图
哈希表可以提供非常快速的插入-删除-查找操作;无论多少数据,插入和删除值都只需要非常短的时间,即O(1)的时间级。实际上,只需要几个机器指令即可完成;哈希表的速度比树还要快,基本可以瞬间查找到想要的元素。但是相对于树来说编码要简单得多。哈希表中的数据是没有顺序的,所以不能以一种固定的方式(比如从小到大 )来遍历其中的元素。通常情况下,哈希表中的key是不允许重复的,不能放置相同的key,用于保存不同的元素。原创 2023-08-06 15:34:19 · 69 阅读 · 0 评论 -
数据结构(二)---栈、队列、集合、字典
主要思路就是先创建一个新的集合,把集合1元素都放进去,然后遍历集合2,如果集合2中的元素没有在新集合中,就add进去。主要思路是遍历集合1,看每个元素是否在集合2中存在,如果存在就return,不存在就继续查找,如果所有元素都在集合2中存在,那么久返回true。围成一圈数数,比如规定数到5的人淘汰,那么淘汰的人后面的人从1开始数,然后数到5的人再淘汰,以此类推,直到剩下最后一个人,求该人的位置。差集的思路和交集相反,遍历集合1,看看每个元素是否在集合2中存在,如果不存在就add到新集合里,最后返回新集合。原创 2023-08-05 23:14:01 · 107 阅读 · 1 评论 -
数据结构(一)--- 链表
数据结构概述:在计算机中存储和组织数据的方式。算法概述:解决方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法复杂度O(1) 常数阶O(log(n)) 对数阶O(n) 线性阶O(nlog(n)) 线性和对数乘积O(n2) 平方阶O(2n) 指数阶既可以从头遍历到尾,又可以从尾遍历到头。也就是说链表连接的过程是双向的,它的实现原理是:一个节点既有向前连接的引用,也有一个向后连接的引用。原创 2023-08-05 18:03:55 · 2250 阅读 · 1 评论