文章目录插入排序直接插入排序希尔排序选择排序选择排序堆排序升序交换排序冒泡排序快速排序递归hoare版本挖坑法前后指针版本非递归Hoare挖坑法前后指针快排的优化三数取中法选key递归到小的子区间时,可以考虑使用插入排序归并排序递归实现非递归实现排序算法复杂度以及稳定性插入排序直接插入排序直接插入排
本篇博客旨在整理记录自已对二叉树的一些总结,以及刷题的解题思路,同时希望可给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉💪。文章目录一、理论基础:1、常见术语2、基本操作3、种类:4、存储方式:5、遍历方式:深度优先搜索(DFS):广度
哈希表哈希表:也叫做散列表。是根据关键字和值(Key-Value)直接进行访问的数据结构。也就是说,它通过关键字key和一个映射函数Hash(key)计算出对应的值value,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数(散列函数),用于存放记录的数组叫做哈希
首先来理解一下深拷贝与浅拷贝的概念我们谈到深拷贝与浅拷贝都是针对于对象或者数组这种复杂数据类型,也就是引用数据类型浅拷贝:只是对内存地址的拷贝,跟拷贝前指向的是同一块内存;深拷贝:既拷贝了内存地址,又拷贝了数据内容,是在堆内存中重新开辟了一块存储空间.内存分为栈内存跟堆内存,对于基本数据类型会被直接
一、前言哈希表的历史哈希散列的想法在不同的地方独立出现。1953年1月,汉斯·彼得·卢恩(HansPeterLuhn)编写了一份IBM内部备忘录,其中使用了散列和链接。开放寻址后来由ADLinh在Luhn的论文上提出。大约在同一时间,IBMResearch的GeneAmdahl、ElaineM.Mc
上篇文章我们实现了基本的响应式系统,这篇文章继续实现computed。首先,我们简单回顾一下:响应式系统的核心就是一个WeakMap---Map---Set的数据结构。WeakMap的key是原对象,value是响应式的Map。这样当对象销毁的时候,对应的Map也会销毁。Map的key就是对
今天来看看ahooks是怎么封装cookie/localStorage/sessionStorage的。cookieahooks封装了useCookieState,一个可以将状态存储在Cookie中的Hook。该hook使用了 js-cookie[1] 这个npm库。我认为选择它
在上周发布的TienChin项目视频中,我和大家一共梳理了六种幂等性解决方案,接口幂等性处理算是一个非常常见的需求了,我们在很多项目中其实都会遇到。今天我们来看看两种比较简单的实现思路。1.接口幂等性实现方案梳理其实接口幂等性的实现方案还是蛮多的,我这里和小伙伴们分享两种比较常见的方案。1.1基于T
大家好,我卡颂。凡是依赖虚拟DOM的框架,都需要「比较前后节点变化」的Diff算法。网上有大量讲解Diff算法逻辑的文章。然而,即使作者语言再精练,再图文并茂,相信大部分同学看完用不了多久就忘了。今天,我们换一种一劳永逸的学习方法——实现React的核心Diff算法。不难,只有40行代码。不信?往下
上次的文章介绍了LRU算法,今天打算来介绍一下LFU算法。在上篇文章中有提到,LFU(Leastfrequentlyused:最少使用)算法与LRU算法只是在淘汰策略上有所不同,LRU倾向于保留最近有使用的数据,而LFU倾向于保留使用频率较高的数据。举一个简单的:缓存中有A、B两个数据,且已达到上限
之前的文章已经把Java中NIO的Buffer、Channel讲解完了,不太了解的可以先回过头去看看。这篇文章我们就来聊聊Selector——选择器。首先Selector是用来干嘛的呢?不熟悉这个概念的话我们其实可以这么理解:selector把它当作SQL中的select语句,在SQL中无非就是筛选
总所周知HashMap是面试中经常问到的一个知识点,也是判断一个候选人基础是否扎实的标准之一,因为通过HashMap可以引出很多知识点,比如数据结构(数组、链表、红黑树)、equals和hashcode方法。除此之外还可以引出线程安全的问题,HashMap是我在初学阶段学到的设计的最为巧妙的集合,里