随笔分类 - 算法基础
【算法基础】16.十大排序算法——基数排序
摘要:参考资料 基数排序https://zhuanlan.zhihu.com/p/417627983 基数排序算法详解https://blog.csdn.net/qq_35344198/article/details/107615053 直观理解 将元素的值按不同的权重等级分别比较,比如比较日期时先比较年
【算法基础】15.十大排序算法——桶排序
摘要:参考资料 桶排序https://zhuanlan.zhihu.com/p/417628400 桶排序算法详解https://blog.csdn.net/qq_35344198/article/details/107378626 直观理解 宏观上分组,每个组内再进行元素级的排序 例子先行 使用一段暂时
【算法基础】14.十大排序算法——计数排序
摘要:参考资料 计数排序https://zhuanlan.zhihu.com/p/417627705 计数排序算法详解https://blog.csdn.net/qq_35344198/article/details/107206269 直观理解 一个计数器序列,遍历元素,对应的计数器+1,然后遍历计数器
【算法基础】13.十大排序算法——堆排序
摘要:参考资料 下面这个资料展示了堆排序的数据结构、构建堆的向上向下的基本过程、构建堆的全过程、堆的弹出与压入,较为齐全 堆排序https://zhuanlan.zhihu.com/p/417623885 下面这个资料示意图较直观,但仅仅展示了堆排序 堆排序算法详解https://blog.csdn.ne
【算法基础】12.十大排序算法——归并排序
摘要:参考资料 归并排序https://zhuanlan.zhihu.com/p/417625111 归并排序算法详解https://blog.csdn.net/qq_35344198/article/details/106857042 直观理解 合并有序集合A和B是容易的,只需要不停地比较A.Top和B
【算法基础】11.十大排序算法——快速排序
摘要:参考资料 C/C++实现快速排序(只掌握第一种即可) 直观理解 选中一个元素作基准值,然后遍历剩余的元素,小的放左边、大的放右边,基准始终或者最后放在中间; 如果允许空间复杂度>1,可以开2个栈,小的放一个栈大的放一个栈,合并时先弹小栈、再放基准值、最后弹大栈,这种思想比较朴素,不必研究; 如果不允
【算法基础】10.十大排序算法——希尔排序
摘要:参考资料 希尔排序算法详解https://blog.csdn.net/qq_35344198/article/details/106665126 直观理解 先细粒度分组(注意粒度与组内步长成反比),分组之后在组内插入排序,所有组都在组内插排完成后,逐步使分组粒度加大,重新分组之后再在组内插排 例子先
【算法基础】9.十大排序算法——插入排序
摘要:参考资料 插入排序算法详解https://blog.csdn.net/qq_35344198/article/details/106546399 直观理解 每次从无序集合中取出一个元素(一般就是取无序集合第一个,为的是留出空间存放有序集合向后的延伸),然后倒序遍历有序集合逐个比较、必要时交换,直到该
【算法基础】8.十大排序算法——选择排序
摘要:参考资料 选择排序https://zhuanlan.zhihu.com/p/417622677 注意上面参考资料中关于冒泡和选择排序的差异的理解并不准确。 直观理解 选定一个值作为假定极值,遍历未排序集合寻找更合适的极值,找到则取出,在一次遍历完成后将此次找到的极值追加到已排序集合之后 例子先行 1
【算法基础】7.十大排序算法——冒泡排序
摘要:参考资料 冒泡排序https://zhuanlan.zhihu.com/p/417620764 直观理解 以升序排列为例 像气泡在水中比重较轻,会逐渐上浮。冒泡排序就是从底部开始两两比较,把应该靠前的元素放在靠前的位置上、如果已经靠前则滑动窗口关注前一对元素 例子先行 1 #include <ios
【算法基础】6.五大算法之动态规划
摘要:参考资料 动态规划及常见例子https://blog.csdn.net/m0_37741420/article/details/107755314 关于最长公共子序列的填表法的原理讲解,详见《趣学算法》的4.3节的解算,严谨又生动 直观理解 和分治法一样将问题的求解分为若干步骤并按顺序解决,和分治法
【算法基础】5.五大算法之分支界限法
摘要:参考资料 分支界限法及常见例子https://blog.csdn.net/m0_37741420/article/details/107594452 直观理解 在层序搜索中,先在当前层找到最优节点,然后在该节点向下继续搜索,使搜索朝着解空间上有最优解的分支推进 例子先行 二叉树的层序搜索,广度搜索算
【算法基础】4.五大算法之回溯算法
摘要:参考资料 回溯算法及常见例子https://blog.csdn.net/m0_37741420/article/details/107444661 直观理解 深度优先搜索,先按一定的规则钻到底,发现不对回退一步走另一条路钻到底,发现不对回退一步走另一条路钻到底。。。 例子先行 二叉搜索树的搜索 总结
【算法基础】3.五大算法之贪心算法
摘要:参考资料 贪心算法及常见例子https://blog.csdn.net/m0_37741420/article/details/107402239 直观理解 贪心算法是通过局部最优解来达到全局最优解 指在对问题求解时,总是做出在当前看来是最好的选择。也就是说不从整体最优上加以考虑,算法得到的结果是在
【算法基础】2.五大算法之分治法
摘要:参考资料 分治算法及常见例子https://blog.csdn.net/m0_37741420/article/details/107201275 一文搞懂分治算法https://baijiahao.baidu.com/s?id=1685106188743154112&wfr=spider&for=
【算法基础】1.算法基础提纲
摘要:出发点 罗列一些算法常识,以免出现认知问题,不怕方法笨,就怕想不到。了解、模仿、效法、变通,加油吧少年。 体系 1.程序员必须掌握哪些算法 2.以下内容查漏补缺,掌握顺序为 数据结构-》常用基础算法-》排序算法-》搜索算法-》树和图 注:下图的常用基本算法内容有误,包括分治法、贪心算法、回溯算法、分