算法思想:贪心 分治 回溯 动态规划算法 数据结构:B+树
贪心:贪婪算法 每一步当前最优解 局部利益最大化
背包问题:
有权图问题:
前提:局部最优策略能导致产生全局最优解
钱币找零问题:
区间问题:
分治:分而治之 通过递归来编程实现(递+归)
适用:排序;分解为独立小问题;独立小问题可解;分解和合并操作复杂度不高
10GB订单数据按照价格排序 分布式系统
回溯backMethod:枚举的搜索尝试过程,选优搜索法 回溯状态点为回溯点
八皇后问题:8*8棋盘格 行 列 斜 线上不能有2个皇后
动态规划:问题分解为相对简单的子问题; 记住已经解决过的子问题的解
1.自顶向下
2.自底向上
斐波拉契数列 钢管切割问题
适用场景:1.具有最优子结构性质的问题;2.无后效性;3.具有重叠子问题的问题。
案例模型:线性模型;区间模型;背包模型
B+树:内部结点(根结点,存储索引)+叶子结点(存储data内容);m阶B+树最多有m-1个关键字
优点:单次查找磁盘IO小;查询效率高;遍历效率高
缺点:大量空间碎片;写请求分布是随机的。