摘要: 散列表 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 散列函数 散列函数,顾名思义,它是一 阅读全文
posted @ 2019-01-07 09:35 五分钟学算法 阅读(2147) 评论(0) 推荐(3)
摘要: Follow: MisterBooo · GitHub 如果文章代码不便阅读,可点击这里查看原文:) 在学习「数据结构和算法」的过程中,因为人习惯了平铺直叙的思维方式,所以「递归」与「动态规划」这种带循环概念(绕来绕去)的往往是相对比较难以理解的两个抽象知识点。 程序员小吴打算使用动画的形式来帮助理 阅读全文
posted @ 2019-01-04 08:49 五分钟学算法 阅读(10081) 评论(2) 推荐(8)
摘要: GitHub Repo:Sort Article Follow: MisterBooo · GitHub 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程 阅读全文
posted @ 2019-01-03 08:54 五分钟学算法 阅读(27218) 评论(37) 推荐(100)
摘要: Trie树 Trie这个名字取自“retrieval”,检索,因为Trie可以只用一个前缀便可以在一部字典中找到想要的单词。 虽然发音与「Tree」一致,但为了将这种 字典树 与 普通二叉树 以示区别,程序员小吴一般读「Trie」尾部会重读一声,可以理解为读「TreeE」。 Trie 树,也叫“字典 阅读全文
posted @ 2019-01-02 09:17 五分钟学算法 阅读(888) 评论(0) 推荐(2)
摘要: 大家好,我是程序员小吴。12月初我在GitHub上上传了一个仓库,到现在为止获取了 6300 star,下面和大家聊聊关于项目启动的初衷、面临的一些困难和未来的计划。 「LeetcodeAnimation」的萌芽? 在刷Leetcode的过程中,遇到很多有意思和有难度的题目,有时候自己能做出来,有时 阅读全文
posted @ 2018-12-29 10:12 五分钟学算法 阅读(2442) 评论(10) 推荐(21)
摘要: 堆(heap)又被为优先队列(priority queue)。尽管名为优先队列,但堆并不是队列。 因为队列中允许的操作是先进先出(FIFO),在队尾插入元素,在队头取出元素。 而堆虽然在堆底插入元素,在堆顶取出元素,但是堆中元素的排列不是按照到来的先后顺序,而是按照一定的优先顺序排列的。 本文通过堆 阅读全文
posted @ 2018-12-21 16:45 五分钟学算法 阅读(680) 评论(0) 推荐(1)
摘要: 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消耗的资源和时间却会有很大的区别,比如快速排序与猴子排序:)。 那么我们应该如何去衡量不同算法之间的优 阅读全文
posted @ 2018-12-17 14:49 五分钟学算法 阅读(1479) 评论(2) 推荐(2)
摘要: 上篇文章讲述了与复杂度有关的大 O 表示法和常见的时间复杂度量级,这篇文章来讲讲另外几种复杂度: 递归算法的时间复杂度(recursive algorithm time complexity),最好情况时间复杂度(best case time complexity)、最坏情况时间复杂度(worst 阅读全文
posted @ 2018-12-15 16:49 五分钟学算法 阅读(1193) 评论(0) 推荐(1)
摘要: 前言 由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 《图解数据结构》,主要使用动画来描述常见的数据结构和算法。本系列包括十大排序、堆、队列、树、并查集、图等等大概几十篇。 快速排序 快速排序是由东尼·霍尔所发展的一种排序算法。 阅读全文
posted @ 2018-12-14 16:35 五分钟学算法 阅读(531) 评论(3) 推荐(3)
摘要: 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消耗的资源和时间却会有很大的区别,比如快速排序与猴子排序:)。 那么我们应该如何去衡量不同算法之间的优 阅读全文
posted @ 2018-12-13 12:36 五分钟学算法 阅读(1374) 评论(0) 推荐(1)