![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法不好玩
文章平均质量分 86
liweiwei讲解
安娜和她的笔记本
攀一座山,追一个梦
展开
-
《算法不好玩》专题三:循环不变量
3-1循环不变量循环不变量:在循环的过程中保持不变的性质循环不变式主要用来帮助我们理解算法的正确性。关于循环不变式,我们必须证明三条性质:初始化:循环的第一次迭代之前,它为真。保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。《算法导论(第3版)》里出现「循环不变量」的地方:插入排序、归并排序、快速排序、优先队列、单源最短路径、最小生成树、……选择排序的循环不变量循环不变的性质:区间nums原创 2022-04-11 19:13:22 · 2429 阅读 · 0 评论 -
《算法不好玩》专题二:基础排序算法
2-1选择排序无序数组→有序数组基于排序算法可以学习的话题:「时间复杂度」、「递归」、「循环不变量」排序算法可以分为:「基于比较的排序算法」、「非比较的排序算法」基于比较的排序算法:「选择排序」、「冒泡排序」、「插入排序」、「希尔排序」、「归并排序」、「快速排序」、「堆排序」非比较的排序算法:「计数排序」、「基数排序」、「桶排序」选择排序的思路:先扫描一遍数组里的所有元素,选出看到的最小元素,我们把它交换到数组的开头,这个元素现在的位置就是排序以后它应该在的位置。接着,我们扫原创 2022-04-08 19:20:38 · 430 阅读 · 0 评论 -
《算法不好玩》专题一:递归与时间复杂度
https://www.bilibili.com/video/BV11h411h7nT《算法不好玩》专题一1-1初始递归递归(Recursion)是函数自己调用自己。递归是计算机科学特有的解决问题的方法。使用递归计算5的阶乘:从上到下是「拆分问题」,从下到上是「组合问题的解」。递归是先「自顶向下」,再「自底向上」1-2栈与深度优先遍历递归借助「栈」实现按照「深度优先」遍历如果原问题和子问题呈现出树形结构,拆分子问题和组合子问题的解释按照深度优先遍历(DFS)的方式进行的。从原创 2022-04-07 21:49:48 · 224 阅读 · 0 评论