首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
一天一个经典算法
正经程序员
创建于2022-02-05
订阅专栏
经典算法合集
等 5 人订阅
共17篇文章
创建于2022-02-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
一天一个经典算法:桶排序
桶排序也叫箱排序,工作的原理是将数组分到有限数量的桶里。每个桶再进行排序排序,可能再使用别的排序算法或者是以递归的方式继续使用桶排序进行排序,桶排序是鸽巢排序的一种归纳结果。
一天一个经典算法:冒泡排序
因为简单易懂,冒泡排序几乎是我们学习的第一个算法。在学习算法课程时,老师通常用冒泡排序来讲述什么是算法,以及时间复杂度和空间复杂度的概念,虽然平时不会用,还是要理解一下实现思路。
一天一个经典算法:贪心算法(警察抓小偷问题)
贪心算法和之前写过的文章动态规划非常类似,不同点在于它对每个子问题的解决方案都做出选择,不能回退。动态规划会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。
一天一个经典算法:插值搜索算法
对于有序且均匀分布的数组,插值搜索比二分搜索效果更好。 无论搜索键如何,二分搜索都会转到中间元素进行检查。而插值搜索可能会根据 search-key 到不同的位置。
一天一个经典算法:广度优先搜索算法(BFS)
广度优先搜索算法(BFS),又叫宽度优先搜索,或横向优先搜索,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。
一天一个经典算法:深度优先搜索算法(DFS)
深度优先搜索是一种用于遍历或搜索树或图数据结构的算法。一个从根开始(选择某个任意节点作为图的根),并在回溯之前沿着每个分支尽可能地探索。
一天一个经典算法:快速选择算法
快速选择算法是一种选择算法,用于在无序列表中查找第K个最小元素。这个算法和快速排序算法有关。它在实际应用是一种高效的算法,具有很好的平均时间复杂度,最坏的时间复杂度非常不理想。
一天一个经典算法:堆排序算法
堆排序是一种就地、基于比较的排序算法,可以被认为是一种改进的选择排序,因为它将输入划分为已排序和未排序的区域。它通过提取最大/最小元素并将其移动到已排序区域来迭代地缩小未排序区域。
一天一个经典算法:选择排序算法
选择排序是一种简单直观的排序算法。原理也比较简单,首先在未排序的序列中找到最小/最大元素,存放到排序序列的起始位置。然后再从剩余未排序元素中继续寻找最小/最大元素,然后放到已排序序列的末尾。
一天一个经典算法:计数排序算法
计数排序是一种基于整数的排序算法,用于对键位于特定范围内的数组进行排序。它计算每个不同键值的元素总数,然后使用这些计数来确定每个键值在输出中的位置。
一天一个经典算法:插入排序算法
插入排序是一种稳定的排序算法,和我们打扑克牌时,从桌子上抓牌,然后在手上排序的过程类似。它在性能方面不是最好的,因为要一次构建最终的排序数组。
一天一个经典算法:合并排序算法(春节档)
合并排序(归并排序)是一种高效的排序算法,可以产生稳定的排序,这意味着如果两个元素具有相同的值,则它们在排序序列中的相对位置与它们在输入中的相对位置相同。
一天一个经典算法:快速排序算法(春节档)
快速排序是一种高效的就地排序算法,如果实施得当,它的执行速度通常比归并排序和堆排序快两到三倍。快速排序是一种比较排序,这意味着它可以对定义了*小于*关系的任何类型的项目进行排序。
一天一个经典算法:KMP算法(春节档)
KMP算法可在一个字符串S内查找一个词W的出现位置。一个词在不匹配时,本身就包含足够的信息来确定下一个匹配可能的开始位置。
一天一个经典算法:拓扑排序算法(春节档)
有向图的拓扑排序或拓扑定序是对其顶点的一种线性排序,使得对于从顶点 u 到顶点 v 的每个有向边 uv, u 在排序中都在 v 之前。
一天一个经典算法:贝尔曼-福特算法(春节档)
大年初一也要卷起来。 贝尔曼-福特算法是求解单源最短路径问题的一种算法,由理查德·贝尔曼(Richard Bellman) 和 莱斯特·福特 创立的。
一天一个经典算法:动态规划(春节档)
动态规划是一种解决复杂问题的方法,关键思想是将大问题分解为一组更简单的子问题,只解决每个子问题一次,并使用基于内存的数据结构存储解决方案。每个子问题解决方案都以某种方式被索引。