数据结构与算法
折只千纸鹤
望尽天涯路
展开
-
回溯算法-小白入门趣味教程
回溯法简单来说就是按照深度优先的顺序,穷举所有可能性的算法,但是回溯算法比暴力穷举法更高明的地方就是回溯算法可以随时判断当前状态是否符合问题的条件。一旦不符合条件,那么就退回到上一个状态,省去了继续往下探索的时间。 那么问题来了,回溯算法能做什么呢? 数独是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复 。 数独盘面是个九宫,每一宫又分为九个小格。在这八十原创 2020-12-09 23:07:56 · 148 阅读 · 0 评论 -
分治算法-小白入门教程
分治算法,简而言之就是将原问题分解成与“原问题相同但是规模更小”的子问题,并可以反复执行这个过程,使得问题规模减小到可以求解为止。 所以算法流程总结如下: 步骤1:将问题分解成子问题; 步骤2:再将子问题按同种方式分解 步骤3:重复步骤2直到得到最终解。 举个小例子: 核涛酥的班级要上体育课,到达操场后体育委员要将班级内所有学生按高矮个排队。 他可以先找出个子最矮的站第一个,然后从剩下的人中再找出最矮的一个站第二个位置,这就是枚举方法,时间复杂度是n的阶乘减一。其中n是学生的个数。 不过体育委员可是个讲究的原创 2020-12-06 00:12:53 · 346 阅读 · 0 评论 -
贪婪算法的一点思考-小白入门教程
数据结构与算法中最简单的算法是什么? 那当之无愧的就是贪婪算法了! 什么是贪婪算法呢? 简单的说就是:把你的最终目标分解为无数个小目标,你要做的是找到每个小目标的最优解决方案。每个小目标的解决方案累加起来就是你这个最终目标的最优解决方案。 {贪婪这两字的内在含义最为关键。这就好像一个贪婪的人,他事事都想要眼前看到最好的那个,看不到长远的东西,也不为最终的结果和将来着想,贪图眼前局部的利益最大化,有点走一步看一步的感觉。} 所以算法流程总结如下: 步骤1:从某个初始解出发; 步骤2:采用迭代的过程,当可以向目原创 2020-12-05 12:16:54 · 136 阅读 · 0 评论 -
关于时间复杂度的一点理解与解释
这里写自定义目录标题 最近想入门数据结构与算法,打开书本,时间复杂度给了我当头一棒。 啥是时间复杂度啊? 虽然当时被这个概念搞得手足无措,但坚韧的我怎么会就此放弃,顺理成章的达成数据结构与算法从入门到放弃的小目标。 于是,经过我多方查证,仔细琢磨。在一个夜黑风高的夜晚,终于摘下了它神秘的面纱。故此,就有了这次分(炫)享(耀)的机会。 这里,我要从一个学霸的故事讲起。 从前有个学霸,他叫核涛酥(也就是本人,后面简称小酥),读小学时,每次数学考试都是满分的成绩,这也是小酥引以为傲的事情。但是就像白雪公主的快乐时原创 2020-12-02 01:06:14 · 264 阅读 · 2 评论