<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>数据结构与算法 on 疯狂的技术宅</title><link>https://fe-tech.viewnode.com/categories/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/</link><description>Recent content in 数据结构与算法 on 疯狂的技术宅</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Thu, 13 May 2021 10:00:00 +0800</lastBuildDate><atom:link href="https://fe-tech.viewnode.com/categories/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/index.xml" rel="self" type="application/rss+xml"/><item><title>一文搞懂二叉堆的排序原理</title><link>https://fe-tech.viewnode.com/post/202105/13/</link><pubDate>Thu, 13 May 2021 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202105/13/</guid><description>基本概念 二叉堆（Binary Heap）实际上是一个完全二叉树或是近似完全二叉树，也就是每一个节点下面最多只会有两个字节点，也有可能是一个或没</description></item><item><title>在JavaScript中实现队列</title><link>https://fe-tech.viewnode.com/post/202103/23/</link><pubDate>Tue, 23 Mar 2021 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202103/23/</guid><description>作为一个优秀的程序猿需要具有知识的广度。首先是要了解你选择的编程语言。如果你正在阅读这篇文章，最有可能使用 JavaScript。 然而在熟悉了</description></item><item><title>用 JavaScript 实现归并排序</title><link>https://fe-tech.viewnode.com/post/202010/20/</link><pubDate>Tue, 20 Oct 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202010/20/</guid><description>在本文中，我们学习 Merge Sort 背后的逻辑，并用 JavaScript 实现。最后，在空间和时间复杂度方面将归并排序与其他算法进行比较。 归并排序背后的逻辑 归并排序使用分而治</description></item><item><title>JavaScript 中的快速排序</title><link>https://fe-tech.viewnode.com/post/202010/12/</link><pubDate>Mon, 12 Oct 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202010/12/</guid><description>介绍 排序是指以特定顺序（数字或字母）排列线性表的元素。排序通常与搜索一起配合使用。 排序算法有许多，而迄今为止最快的算法之一是快速排序（Qui</description></item><item><title>用回溯算法求解数独问题</title><link>https://fe-tech.viewnode.com/post/202009/27/</link><pubDate>Sun, 27 Sep 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202009/27/</guid><description>前几天我们在《浅析常见的算法范式 》中讨论了一些常见的算法范式，但是还留下了回溯算法没有解决。本文来研究回溯算法。 回溯是通过逐步构建解决方案来</description></item><item><title>浅析常见的算法范式</title><link>https://fe-tech.viewnode.com/post/202009/22/</link><pubDate>Tue, 22 Sep 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202009/22/</guid><description>首先明确三个概念： 算法： 按步骤解决问题的过程。 范式： 思考问题的模式。 算法范式： 为问题构建高效解决方案的常规方法。 本文讨论一些常用的算法范式，</description></item><item><title>算法面试指南</title><link>https://fe-tech.viewnode.com/post/202004/30/</link><pubDate>Thu, 30 Apr 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202004/30/</guid><description>算法是技术面试的重要组成部分，尤其是在国内外的大厂中。本文将为你介绍在面试中需要了解的常见算法以及提高它们效率的方法（这是面试中常见的问题）</description></item><item><title>通过 JavaScript 学习算法复杂度</title><link>https://fe-tech.viewnode.com/post/202001/21/</link><pubDate>Tue, 21 Jan 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202001/21/</guid><description>在本文中，我们将探讨 “二次方” 和 “n log(n)” 等术语在算法中的含义。 在后面的例子中，我将引用这两个数组，一个包含 5 个元素，另一个包含 50 个</description></item><item><title>用 JavaScript 实现单词查找树</title><link>https://fe-tech.viewnode.com/post/202001/15/</link><pubDate>Wed, 15 Jan 2020 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/202001/15/</guid><description>用 JavaScript 实现单词查找树 动机 对于搜索字符串的需求，在最坏的情况下，二叉搜索树的时间复杂度可能为 O(n)，“n” 是二叉树中存储的字符串的总数量。所以</description></item><item><title>用 JavaScript 实现常用数据结构</title><link>https://fe-tech.viewnode.com/post/201911/21/</link><pubDate>Thu, 21 Nov 2019 10:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201911/21/</guid><description>我们要谈论的是什么？ 在 JavaScript 中数据结构通常总是被忽略，或者接触得不多。但是对于许多大厂而言，一般都需要你深刻了解如何管理数据。掌握数据结构也能够</description></item><item><title>实现一个简单的 JavaScript 状态机</title><link>https://fe-tech.viewnode.com/post/201909/12/</link><pubDate>Thu, 12 Sep 2019 12:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201909/12/</guid><description>使用简单的状态机创建干净且健壮的 UI 使用状态机可以构建健壮的 UI，其好处已有详细的描述—— 例如你可以参见Edward J. Pring 的文章和 David Khourshid 的视频。 另</description></item><item><title>用JavaScript实现二叉搜索树</title><link>https://fe-tech.viewnode.com/post/201908/12/</link><pubDate>Mon, 12 Aug 2019 12:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201908/12/</guid><description>计算机科学中最常用和讨论最多的数据结构之一是二叉搜索树 。这通常是引入的第一个具有非线性插入算法的数据结构。二叉搜索树类似于双链表，每个节点包</description></item><item><title>理解算法的时间复杂度</title><link>https://fe-tech.viewnode.com/post/201906/11/</link><pubDate>Tue, 11 Jun 2019 12:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201906/11/</guid><description>在计算机科学中，算法分析是非常关键的部分。找到解决问题的最有效算法非常重要。可能会有许多算法能够解决问题，但这里的挑战是选择最有效的算法。现</description></item><item><title> JavaScript算法题：查找数字在数组中的索引</title><link>https://fe-tech.viewnode.com/post/201905/14/</link><pubDate>Tue, 14 May 2019 11:08:53 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201905/14/</guid><description>编写算法时，排序是一个非常重要的概念。它有各种各样的种类：冒泡排序、希尔排序、分块排序，梳排序，鸡尾酒排序，侏儒排序 —— 这些可不是我瞎编的 ！</description></item><item><title>用JavaScript实现插入排序</title><link>https://fe-tech.viewnode.com/post/201905/10/</link><pubDate>Fri, 10 May 2019 12:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201905/10/</guid><description>插入排序的工作原理是选择当前索引 i 处的元素，并从右向左搜索放置项目的正确位置。 实现插入排序 插入排序是一种非常简单的算法，最适合大部分已经被排</description></item><item><title>在 JavaScript 中优雅的提取循环内的数据</title><link>https://fe-tech.viewnode.com/post/201902/28/</link><pubDate>Thu, 28 Feb 2019 12:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201902/28/</guid><description>在本文中，我们将介绍两种提取循环内数据的方法：内部迭代和外部迭代。 循环 举个例子，假设有一个函数 logFiles()： const fs = require(&amp;#39;fs&amp;#39;); const path = require(&amp;#39;path&amp;#39;); function logFiles(dir) { for</description></item><item><title>怎样在JavaScript中创建和填充任意长度的数组</title><link>https://fe-tech.viewnode.com/post/201902/22/</link><pubDate>Fri, 22 Feb 2019 12:00:00 +0800</pubDate><guid>https://fe-tech.viewnode.com/post/201902/22/</guid><description>创建数组的最佳方法是通过字面方式： const arr = [0,0,0]; 不过这并不是长久之计，比如当我们需要创建大型数组时。这篇博文探讨了在这种情况下应该怎么做。 没有空洞</description></item></channel></rss>