算法
该分类主要以算法竞赛为主,大部分代码以C++编写,不涉及太多语言方面的知识,主要讲解算法类知识。
SkeletonKing233
我的学习历程:我的世界红石 -> 我的世界命令方块 -> Scratch -> 算法竞赛 -> Java
展开
-
算法:强连通分量缩点
有时对于一个有向图我们及其渴望将其变为一个有向无环图,这样我们就要用到强连通分量缩点了。原创 2020-03-26 11:48:11 · 491 阅读 · 0 评论 -
算法:强连通分量——tarjan算法
学有向图的连通性不可不学的一个东西就是强连通分量——tarjan算法。原创 2020-03-19 12:10:52 · 281 阅读 · 0 评论 -
算法:二分图最大独立集
二分图的最大独立集,又是一个二分图中非常经典的问题。原创 2020-03-18 11:41:12 · 3166 阅读 · 0 评论 -
算法:桶排序
桶排序相信很多人都听说过吧,无比经典的一个排序算法。原创 2020-03-18 11:14:02 · 193 阅读 · 0 评论 -
算法:二分图最小点覆盖——Konig定理
二分图的最小点覆盖,又是一个二分图中非常经典的问题。原创 2020-03-17 15:39:14 · 3872 阅读 · 3 评论 -
算法:二分图最大匹配——匈牙利算法
一想到二分图最大匹配,我就不禁想起那几个少年抢女朋友的故事,所以今天我就来说一下二分图匹配的解决方法——匈牙利算法。原创 2020-03-17 10:44:21 · 252 阅读 · 0 评论 -
算法:零一背包
零一背包问题是一个非常重要的动态规划求解的问题,只要你学习DP就不可不学零一背包,所以务必要认真学习这个问题。原创 2019-08-13 14:24:57 · 2774 阅读 · 0 评论 -
算法:最大子段和
最大子段和是一个学习动态规划必学的问题,也是最基础的动态规划问题。原创 2019-08-13 14:25:47 · 9260 阅读 · 2 评论 -
算法:全排列问题——邻位互换法
邻位互换法,只要你在学全排列就不可不学的一个及其有趣的算法原创 2020-03-10 08:57:14 · 1416 阅读 · 0 评论 -
算法:全排列问题——递减进位法
求一个全排列的下m个全排列,我们发现递增进位法每次进位的次数太多,因此为了对其进行优化出现了递减进位法。原创 2020-02-26 09:10:14 · 615 阅读 · 0 评论 -
算法:全排列问题——递增进位法
求一个全排列的下m个全排列,有时我们并不想按字典序找,而是想换一种顺序去找。原创 2020-02-26 08:42:25 · 862 阅读 · 0 评论 -
算法:堆排序
堆排序是指利用堆这种数据结构进行的排序算法,时间复杂度为O(n * log2(n)),和快速排序差不多快。原创 2020-03-09 18:21:21 · 719 阅读 · 0 评论 -
算法:全排列问题——n进位法
对于输出1 ~ n这些数组成的所有全排列的方法有最暴力的递归枚举法和相对简单写的递归交换法,但是有时我们只希望可以找到一个全排列的下一个全排列,就这样出现了n进位法。原创 2020-02-26 12:13:23 · 559 阅读 · 0 评论 -
算法:全排列问题——字典中介法
有时我们希望可以找到一个全排列的下m个全排列,而不仅仅是下一个,就这样出现了字典中介法。原创 2020-02-25 10:13:16 · 459 阅读 · 0 评论 -
算法:全排列问题——字典序法
求一个排列的下一个排列我们有暴力的n进位法,当然也就有效率较高的字典序法。原创 2020-02-21 10:47:30 · 919 阅读 · 0 评论 -
算法:全排列问题——递归交换法
对于求解全排列问题有最暴力的递归枚举法,但是我们希望可以优化时间,因此出现了递归交换法。原创 2020-02-19 11:38:35 · 1403 阅读 · 0 评论 -
算法:全排列问题——递归枚举法
全排列问题是一道非常经典的递归题目,而递归枚举法求解也是最暴力的一种方法。原创 2020-02-19 09:08:16 · 899 阅读 · 0 评论 -
算法:基数排序
基数排序是桶排序的一种,属于稳定性的排序。原创 2020-02-17 16:45:45 · 685 阅读 · 0 评论 -
算法:计数排序
计数排序和鸽巢排序十分相似,同属于桶排序的一种,它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n),速度极快无比,但空间上就恶心一些了。原创 2020-02-17 15:21:32 · 550 阅读 · 0 评论 -
算法:鸽巢排序
鸽巢排序,名字很生动形象,其实就是把待排序的数组中相同的元素扔到同一个鸽巢。原创 2020-02-17 12:07:44 · 471 阅读 · 0 评论 -
算法:汉诺塔问题
汉诺塔问题,是心理学实验研究常用的任务之一。当然我们是学计算机的,因此我们尝试用计算机去求解它。原创 2020-02-17 09:11:10 · 1043 阅读 · 0 评论 -
算法:快速排序
快速排序,顾名思义就是速度很快的排序,平均时间复杂度仅为O(n * log2(n))。原创 2020-02-16 13:18:11 · 237 阅读 · 0 评论 -
算法:归并排序
归并排序是一种非常经典的分治算法,也是非常精美的算法,学习归并排序,对于理解分治法思想、提高算法思维能力十分有帮助。原创 2020-02-13 10:57:27 · 489 阅读 · 0 评论 -
算法:希尔排序
希尔排序是基于插入排序的一个优化。可以使平均时间复杂度减少为O(n * log2(n))。原创 2020-02-12 18:58:38 · 3779 阅读 · 0 评论 -
算法:插入排序
插入排序是一种简单直观且稳定的排序算法,顾名思义,就是每次将待排序序列中的一个数插入到已排序的数列中,也是非常有名的算法。原创 2020-02-12 18:04:14 · 322 阅读 · 0 评论 -
算法:冒泡排序
冒泡排序——又一个无比经典的排序算法。而这个算法的名字由来是因为这个算法会让越大的元素会经过交换慢慢“浮”到数列的顶端,就如同气泡一样,大的会上浮到顶端,故名“冒泡排序”。原创 2020-02-12 13:26:04 · 244 阅读 · 0 评论 -
算法:选择排序
信息学中排序是一个重要的技能,排序算法的种类也丰富多样,而排序就是对于一个无序数组让其变得如何有序的过程。而排序中最简单、也是最基础的一种算法也就是选择排序。原创 2020-02-12 12:58:42 · 234 阅读 · 0 评论