分治算法的核心思想是将原问题划分成 n 个规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后再合并其结果,就得到原问题的解。分治算法是一种处理问题的思想,递归是一种编程技巧。分治算法比较适合使用递归来实现。
王争数据结构与算法学习笔记-贪心算法
贪心算法有很多经典应用,比如霍夫曼编码、Prim和Kruskal最小生成树算法、Dijkstra单源最短路径算法。
王争数据结构与算法学习笔记-归并、快排
归并排序和快排都使用了分治思想,可以借鉴这种思想来解决非排序问题,比如:如何在O(n)的时间复杂度内找到一个无序数组中的第k大元素?
推免
专业课
常见内部排序的分析(面试)
插入排序
王道-顺序、折半、分块查找
基本概念
numpy广播机制的巧妙使用
numpy广播在语义分割上的妙用
学习链接
深度学习
王争数据结构与算法学习笔记-冒泡、插入、选择排序
插入排序和冒泡排序的时间复杂度相同,都是O(n2),在实际的软件开发里,为什么我们更倾向于使用插入排序算法而不是冒泡排序算法呢?
王争数据结构与算法学习笔记-递归
递归不需要我们去从最高层到最底层屡清楚,我们只需要考虑的是当前层与上一层之间的关系,将这种关系表示出来,然后将终止递归的条件确定清楚即可。至于一层一层往下调交给计算机来处理吧!试图想搞清楚计算机每一步都是怎么执行的,这样就很容易被绕进去。