IT程序员😋化繁为简的分治法顾名思义,分治问题由“分”(divide)和“治”(conquer)两部分组成,通过把原问题分为子问题,再将子问题进行处理合并,从而实现对原问题的求解。我们在排序章节展示的归并排序就是典型的分治问题,其中“分”即为把大数组平均分成两个小数组,通过递归实现,最终我们会得到多个长度为 1 的子数组;“治”即为把已经排好序的两个小数组合成为一个排好序的大数组,从长度为 1 的子数组开始,最终合成一个大数组。 算法训练 热门文章
IT程序员😋居合斩!二分查找 二分查找也常被称为二分法或者折半查找 (binary search, bisect),每次查找时通过将待查找的单调区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n)的数组,二分查找的时间复杂度为 O(log n)。 算法训练 热门文章
IT程序员😋最易懂的贪心算法最易懂的贪心算法,贪心算法或贪心思想 (greedy algorithm) 采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。 算法训练 热门文章