摘要: Tip 为了演示更加清楚,本文中所有的动画都放慢了速度,因此GIF大小对比之前会有所增大,图片加载速度会变慢 在前面的章节中详细的讲解分析了十大经典排序算法,本文将进行一个大总结同时分析它们的时间复杂度与稳定性。 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。阅读全文
posted @ 2018-12-04 16:34 五分钟学算法 阅读(1874) 评论(12) 编辑
摘要: 前言科普 第一篇二分搜索论文是 1946 年发表,然而第一个没有 bug 的二分查找法却是在 1962 年才出现,中间用了 16 年的时间。 2019 年的你,在面试的过程中能手写出没有 bug 的二分查找法么? 定义 在计算机科学中,二分查找(英语:binary search),也称折半搜索(英语阅读全文
posted @ 2019-06-12 11:24 五分钟学算法 阅读(33) 评论(0) 编辑
摘要: 个人原创,首发于:五分钟学算法:毕业十年后,我忍不住出了一份程序员的高考试卷 一、选择题(共计 50 分) 1、在下列四种排序算法,只有( )是一种不稳定排序 A、冒泡排序 B、选择排序C、插入排序 D、归并排序 2、一个数组,含有大量重复元素,使用( )进行排序是一种合理的抉择 A、快速排序 B、阅读全文
posted @ 2019-06-10 08:40 五分钟学算法 阅读(5182) 评论(38) 编辑
摘要: 这是通过「扫雷与算法」小程序来讲解算法的第一章:如何随机化的进行布雷,主要介绍了三种不那么好的方法,希望通过这些不好的方法能让大家明白第二章要讲解的「洗牌算法」有多牛逼。 补充:「扫雷与算法」小程序会在写完后进行开源,发布在我的 GitHub 上面。 方法一 最想当然的方法就是随机的在二维区间寻找一阅读全文
posted @ 2019-06-03 19:50 五分钟学算法 阅读(255) 评论(3) 编辑
摘要: 从一个需求谈起 在我之前的项目中,曾经遇到过这样一个需求,编写一个级联选择器,大概是这样: 1 图中的示例使用的是 Ant-Design 的 Cascader 组件。 要实现这一功能,我需要类似这样的数据结构: 一个具有层级结构的数据,实现这个功能非常容易,因为这个结构和组件的结构是一致的,递归遍历阅读全文
posted @ 2019-05-30 15:22 五分钟学算法 阅读(763) 评论(4) 编辑
摘要: 假设有三男(分别是 A ,B ,C )和三女(分别是 x,y ,z ),他(她)们对异性的心仪程度如对话框所示。 比如对于男 A 来说,心仪对象排名为 x 排第一,y 排第二,z 排第三。 今天是特殊节日,你化身为丘比特,来设计一个算法分配对象。 立即接受算法 下面以男生主动追求对象为例来讲解 立即阅读全文
posted @ 2019-05-20 09:06 五分钟学算法 阅读(110) 评论(0) 编辑
摘要: 今天分享一道很简单的算法题。 题目来源于 LeetCode 上第 268 号问题:缺失数字。题目难度为 Easy,目前通过率为 50.2% 。 题目描述 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 说明: 你的算法应该具有线性时阅读全文
posted @ 2019-05-17 11:11 五分钟学算法 阅读(77) 评论(0) 编辑
摘要: 前言科普:什么是滑动窗口算法 滑动问题包含一个滑动窗口,它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合。 假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 在其上滑动,则有: 一般情况下就是使用这个窗口在数组的 合法区间 内进行滑动,同时 动态地 记录一些阅读全文
posted @ 2019-04-22 09:28 五分钟学算法 阅读(375) 评论(0) 编辑
摘要: 昨晚被一则新闻刷屏:北京时间 4 月 10 日今晚 9 点,人类首张黑洞照片正式发布。 看到这张图片,小吴心里是极为震撼的:爱因斯坦太太太太太牛逼了!!! 同时,看新闻的时候小吴还注意到里面有个细节,给黑洞”拍照“的事件视界望远镜从 2017 年就开始为黑洞拍照了,但直到 2019 年才公布。 心里阅读全文
posted @ 2019-04-11 14:30 五分钟学算法 阅读(863) 评论(1) 编辑
摘要: 题目来源于 LeetCode 第 23 号问题:合并 K 个排序链表。 该题在 LeetCode 官网上有关于链表的问题中标注为最难的一道题目:难度为 Hard ,通过率在链表 Hard 级别目前最低。 题目描述 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入 阅读全文
posted @ 2019-04-09 09:38 五分钟学算法 阅读(493) 评论(0) 编辑
摘要: 散列表概念 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 更加详细的介绍请戳这: 1. 两阅读全文
posted @ 2019-03-15 15:56 五分钟学算法 阅读(525) 评论(2) 编辑