前端web算法
文章平均质量分 91
前端布道人
骑行,拍娃,撸代码。前端老兵一枚
展开
-
请手写几种js排序算法
排序算法是计算机科学中常用的一种算法,用于将一组元素按照特定的顺序进行排列。排序算法是一种针对数据集合进行排序的算法。排序算法通常采用比较和交换的方式来对数据进行排序,使得数据按照一定规则排列。排序算法在计算机科学中有着重要的应用,例如在数据检索、数据分析、数据压缩等领域都需要使用排序算法。排序算法可以分为内部排序和外部排序两种。内部排序是指所有需要排序的数据能够一次性存放在计算机的内存中进行排序的过程。原创 2024-02-09 00:00:00 · 923 阅读 · 0 评论 -
浅谈设计模式
TOC/TOC。原创 2024-01-17 02:00:00 · 913 阅读 · 0 评论 -
web前端算法简介之字典与哈希表
TOC/TOC。原创 2024-01-15 03:00:00 · 1080 阅读 · 0 评论 -
web前端算法简介之字典与哈希表
TOC/TOC。原创 2024-01-15 00:00:00 · 1613 阅读 · 0 评论 -
web前端算法简介之链表
TOC/TOC。原创 2024-01-14 00:00:00 · 2005 阅读 · 0 评论 -
web前端算法简介之队列
TOC/TOC。原创 2024-01-13 00:00:00 · 1241 阅读 · 0 评论 -
web前端算法简介
时间复杂度通过分析算法中的基本操作次数,以及这些操作在不同输入规模下的执行时间,来衡量算法的执行效率。而空间复杂度则关注算法执行过程中所占用的内存空间大小,衡量算法的内存利用情况。两者都是评估算法性能的重要指标,但关注的方面不同。在算法设计和分析中,我们需要综合考虑时间复杂度和空间复杂度,以找到最优的解决方案。原创 2024-01-11 00:00:00 · 1218 阅读 · 0 评论 -
再谈前端算法
解决一系列问题的具体步骤算法是一组用于解决特定问题或执行特定任务的有限步骤序列。这些步骤按照确定的顺序执行,以达到所需的结果。在计算机科学中,算法通常用于描述数据处理、自动化处理和数学运算的过程。算法可以用来解决各种问题,包括排序、搜索、路径规划等。原创 2024-01-10 00:00:00 · 1744 阅读 · 0 评论 -
前端算法总结
数据结构和算法解决是 “如何让计算机更快时间、更省空间的解决问题”。因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。原创 2024-01-09 00:00:00 · 872 阅读 · 0 评论 -
前端算法之图-找到小镇法官和课程表
多接点的拓扑关系在算法中,图是一种数据结构,它由节点(顶点)和连接节点的边组成。图可以用来表示各种实际问题中的关系和连接方式。图由两个主要部分组成:节点和边。节点表示实体或对象,而边表示节点之间的连接关系。这些连接关系可以是有向的(箭头指示方向)或无向的(没有箭头指示方向)。图可以是有权重的(边具有相关的数值或权重)或无权重的。图可以有多种形式,包括有向图、无向图、加权图等。在算法中,图被广泛用于解决各种问题,如路径搜索、最短路径、网络流、最小生成树等。常用的图算法包括深度优先搜索(DFS)、广度优先搜索(原创 2024-01-08 00:00:00 · 899 阅读 · 0 评论 -
前端算法之动态规划
设f(i)为前i个数中选取不相邻数能够获得的最大和。那么问题的解就是f(n)。原创 2024-01-07 00:00:00 · 1148 阅读 · 0 评论 -
前端算法之堆--桶排序和快速排序
leetcode链接:https://leetcode.cn/problems/top-k-frequent-elements/给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:示例 2:提示:进阶: 你所设计算法的时间复杂度 必须 优于 O(n log n) ,其中 n 是数组大小。更多详细内容,请微信搜索““, 戳我 查看 。使用桶排序桶排序适用 top k中 频次题,计数排序适用 top k中 值的题数组中的第K个最原创 2024-01-06 02:00:00 · 925 阅读 · 0 评论 -
前端算法之堆 -- 计数排序
TOC/TOC堆可以分为和两种类型。在最小堆中,每个父节点的值都要小于或等于其子节点的值,也就是说,根节点是整个堆中的最小值。而在最大堆中,每个父节点的值都要大于或等于其子节点的值,也就是说,根节点是整个堆中的最大值。假设我们有一个包含以下元素的最小堆:[5, 7, 10, 12, 15, 17, 20]在最小堆中,根节点的值5是整个堆中的最小值。并且,每个父节点的值都小于或等于其子节点的值。假设我们有一个包含以下元素的最大堆:[30, 25, 20, 15, 10, 5]原创 2024-01-05 21:28:56 · 1002 阅读 · 0 评论 -
前端算法之二叉树
TOC/TOC。原创 2024-01-02 00:00:00 · 1194 阅读 · 0 评论 -
前端算法之滑动窗口
滑动窗口(Sliding Window)是一种常用的算法技巧,用于的问题。它通过维护一个固定大小的窗口来解决问题。具体来说,滑动窗口算法通常包含以下步骤:滑动窗口算法的优势在于其时间复杂度通常为O(n),其中n为数组或字符串的长度。这使得滑动窗口算法在处理大规模数据时非常高效。滑动窗口算法可以应用于许多问题,如:它的核心思想是通过调整窗口的来寻找。当使用JavaScript来实现滑动窗口算法时,我们可以举一个经典的例子:在一个数组中查找连续子数组的最大值之和。下面是使用JavaScript实现滑动窗口算法原创 2024-01-01 00:00:00 · 561 阅读 · 1 评论 -
前端算法之双指针之快慢指针(Floyd 判圈法)
对于链表找环路的问题,有一个通用的解法——快慢指针(Floyd 判圈法)。给定两个指针,分别命名为 slow 和 fast,起始位置在链表的开头。每次 fast 前进两步,slow 前进一步。如果 fast可以走到尽头,那么说明没有环路;如果 fast 可以无限走下去,那么说明一定有环路,且一定存在某个时刻 slow 和 fast 相遇。当 slow 和 fast 第一次相遇时,我们将 fast 重新移动到链表开头,并让 slow 和 fast 每次都前进一步。原创 2023-12-31 00:00:00 · 910 阅读 · 0 评论 -
前端算法之双指针
双指针是一种编程技术,通常用于解决数组或链表的问题。双指针法使用两个指针(通常称为快指针和慢指针)来遍历数据结构,以解决一些需要找到特定元素或进行其他复杂操作的问题。双指针法的主要优点是它可以在一次遍历中解决问题,而不需要反向遍历或使用其他额外的数据结构。这使得它在解决一些问题时效率更高。例如: 在一个数组中查找两个数之和等于一个特定值,我们可以使用双指针法。首先,我们可以将一个指针放在数组的开头,另一个指针放在数组的末尾。然后,我们可以将两个指针向中间移动,比较它们所指向的元素之和与目标值的大小关系。请注原创 2023-12-30 00:00:00 · 1101 阅读 · 0 评论 -
前端算法之复杂度
复杂度双指针滑动窗口二叉树时间复杂度 量级最大的部分,影响最大循环、嵌套、递归 有多维复杂度概念// 二分查找算法 -- O(logN)let i = 1i = i * 2// log2^n 可称为 logNlet i = 1i = i * 2return ii < n;原创 2023-12-29 00:00:00 · 947 阅读 · 0 评论 -
浅谈八种数据结构
TOC/TOC更多详细内容,请前端爱好者。原创 2023-12-28 04:00:00 · 855 阅读 · 0 评论 -
浅谈数据结构-树简介
树是n(n>=0)个结点的有限集。当n = 0时,称为空树。有且仅有一个特定的称为根的结点。当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,并且称为根的子树。显然,树的定义是递归的,即在树的定义中又用到了自身,树是一种递归的数据结构。树的根结点没有前驱,除根结点外的所有结点有且只有一个前驱。树中所有结点可以有零个或多个后继。因此n个结点的树中有n-1条边。原创 2023-12-27 23:50:35 · 895 阅读 · 0 评论