
基础算法
一些基础算法笔记
没有文化,啥也不会
这个作者很懒,什么都没留下…
展开
-
超基础算法:动态规划
算法介绍动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果算法思想动态规划的本质其实是一种分治思想,即把原问题分解为若原创 2020-09-29 12:29:04 · 510 阅读 · 0 评论 -
超基础算法:滑动窗口
简介滑动窗口,简单来说,就是以动态的边界限定的一组元素。其中边界限定的大小称为窗口大小,边界变化的幅度称为滑动步长。滑动窗口的应用场景有几个特点:需要输出或比较的结果在原数据结构中是连续排列的; 每次窗口滑动时,只需观察窗口两端元素的变化,无论窗口多长,每次只操作两个头尾元素,当用到的窗口比较长时,可以显著减少操作次数; 窗口内元素的整体性比较强,窗口滑动可以只通过操作头尾两个位置的变化实现,但对比结果时往往要用到窗口中所有元素。举例如下图表示的是一个窗口大小为5,滑动步长为1的...原创 2020-06-28 18:11:21 · 4646 阅读 · 2 评论 -
超基础算法:二分查找法
二分法是五大基础算法中分治算法的一种,按照分治算法分而治之的思想,二分法的思路很简单,即:将区间从中分为两部分,判断查找元素属于哪一部分。 更新区间,重复第一步。直到将区间缩小到只有一个元素为止。二分查找法在实际使用中局限性比较大,二分查找法必须遵循以下要求:必须采用顺序存储结构,如数组或链表,集合是不行的。 必须有序排列,即在存储时就按照顺序排列。如:一个10位的数组,按顺序存放字母a~z中任意10个字母,其中包含字母x。按照二分法找字母x。a c d f .原创 2020-05-26 18:47:40 · 1382 阅读 · 0 评论