算法
文章平均质量分 62
算法导论的学习心得及leetcode好题分享
CON_DUCT
网安在读,将持续发布有关算法优化,密码学,系统原理等文章。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线性时间排序
这是算法导论的总结性文章。在学习过程中已经接触到了非常多的排序算法,在数据结构一课中也有具体的分类,不难发现即便被认为在某种程度上最高效最常用的随机快速排序算法时间复杂度也在O(nlogn)。这是为什么呢?其实我们之前学到的算法都可以归类为比较排序算法,可以用决策树来表示出来,假设我们要对A1 A2 A3进行排序,小于走左子树,大于走右子树,就可以得到如下的决策树。每一个叶子结点都是最后的结果,当规模变大的时候,决策树并不是一个简洁的表述方式,但是并不代表它一无是处,比如我们可以用来证明比较排序时间复原创 2021-08-15 09:46:11 · 152 阅读 · 0 评论 -
快速排序和堆排序
最近在刷递归但是老是要用到这两个排序,然后自己还老是忘,所以干脆放在这方便回顾。快速排序int getStandard(auto& array, int i, int j) { int key = array[i]; while (i < j) { while (i < j && array[j] >= key) { j--; } if (i < j) {原创 2021-08-10 11:53:50 · 131 阅读 · 0 评论 -
从(0,0)到(n,n)——广度优先及其改进
最近力扣刷了一些广度优先,深度优先的题目,看了b站的奇乐编程学院的一个寻路算法视频,突然想到这个知识点在离散的课堂上也讲过,从(0,0)到(n,n)要走多少步,其中还包括一些特殊问题,比如不能通过对角线,有障碍物等。卡特兰数学过离散的孩子应该都知道这个神奇的东西,我理解的卡特兰数是一个满足很多现实情况的数列。比如一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列? 又比如依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?…比较经典的问题就是今天要讨论的从(原创 2021-07-18 16:24:09 · 474 阅读 · 0 评论 -
[力扣leetcode39]组合总和及回溯法
[力扣leetcode39]组合总和及回溯法回溯yyds小练习回溯yyds在算法优化上面回溯法或许没有那么引人注意,但是对于一些题目来说能够回溯已经很好了。题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。比如输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]对于这道题目最原创 2021-07-09 17:06:03 · 186 阅读 · 0 评论 -
[力扣leetcode319]灯泡问题
灯泡问题问题描述初始时有 n 个灯泡处于关闭状态。对某个灯泡切换开关意味着:如果灯泡状态为关闭,那该灯泡就会被开启;而灯泡状态为开启,那该灯泡就会被关闭。第 1 轮,每个灯泡切换一次开关。即,打开所有的灯泡。第 2 轮,每两个灯泡切换一次开关。 即,每两个灯泡关闭一个。第 3 轮,每三个灯泡切换一次开关。第 i 轮,每 i 个灯泡切换一次开关。 而第 n 轮,你只切换最后一个灯泡的开关。找出 n 轮后有多少个亮着的灯泡。求解刚开始看着这道题心里想,力扣你确定这是道中等题???两个for原创 2021-04-13 09:17:24 · 579 阅读 · 0 评论 -
算法导论一分治法
分治法的实“力”归并排序乘方问题(斐波那契数列)递归自下而上的递归矩阵的n次幂最近闲了点开始肝算法导论了,先介绍一些可能贯穿在整个算法导论文章的一些思想。首先是T(n)用来表示需要的时间,我们往往研究三种情况的T(n)。第一种是最坏情况(worst),用大佬的话说就是给用户一个保证,保证不管输入的数据时间复杂度不会比这个更差了,比如你说这个程序至多运行三秒,这个没有问题但如果你说是至少运行三秒,那它会不会运行三年呢,这不是一个可靠的保证。第二种平均(average),简单来说就是期望,或者更严格来说是加原创 2021-04-09 22:12:11 · 190 阅读 · 0 评论
分享