算法学习笔记
文章平均质量分 79
anxianyu121
这个作者很懒,什么都没留下…
展开
-
【算法学习笔记07】贪心算法(Greedy Algorithm)
贪心算法是什么?在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法的基本框架,贪心算法的基本步骤。进程调度,最先结束优先代码示例。原创 2022-10-24 19:19:00 · 1648 阅读 · 1 评论 -
【算法学习笔记06】分治思想之QuickSort快速排序
快速排序是常见的冒泡排序的改进。和经典的排序算法合并排序一样,快速排序也运用了分治的思想。冒泡排序是在一个序列中只把一个元素冒泡到数列的一端,而快排是每次选中一个pivot当作基准元素,小于pivot放在pivot的左边,反之放在右边,从而将序列分为了两个部分。原创 2022-10-23 21:34:09 · 354 阅读 · 0 评论 -
【算法学习笔记05】分治思想之MergeSort合并排序
分治的思想就是字面意义,“分而治之”。当我们拿到一个复杂问题时,如果不能够很好的解决,我们首先会想到的是将这个复杂的问题简单化。将原问题分成很多个子问题,再将子问题分成更小的子问题,直到他们是好解决能解决的。合并排序及其python实现原创 2022-10-22 14:32:00 · 826 阅读 · 0 评论 -
【算法学习笔记04】递归算法之汉诺塔问题
指在函数的定义中使用函数自身的方法,即程序的自身调用。有高度的自相似性,Eg.f(n)=nf(n-1)递归的理解:递归可以分为“递”和“归”两个部分。“递”是将一个大问题划分成很多很多小问题,直到问题小到可以一步解决。”归“是将所有的小问题进行合并或者累加。函数sum(n=5)的递归执行过程:阶乘问题、二叉树深度、汉诺塔问题、斐波那契数列、快速排序、归并排序、遍历文件、解析xml文件。原创 2022-10-18 13:35:37 · 234 阅读 · 0 评论 -
【算法学习笔记03】 渐进分析思想如何寻找时间复杂度
大O用来表示上界的,当用它作为算法的最坏情况运行时间的上界,就是对任意数据输入的运行时间的上界。同样表示确界用Θ,表示下界用Ω。一个算法花费的时间与算法中语句执行的次数成正比。一个算法中语句的执行次数称为时间频度或语句频度。记为T(n)。算法基本操作重复执行的次数是模块n的某一个函数f(n)。所以最坏情况下T(n)=O(f(n)),记作我们的时间复杂度。原创 2022-10-13 10:40:40 · 419 阅读 · 0 评论 -
【算法学习笔记02】 渐进分析思想和基础问题
算法学习笔记求最大值问题、寻找peak、二分法求解、返回累加和为0的子集原创 2022-10-12 21:46:17 · 180 阅读 · 0 评论