
算法进阶
codenow.fun
不惑于自己,不惑于未来;找到自己的兴趣爱好,并不断坚持下去。
展开
-
快速排序、归并排序、选择排序和插入排序的Java实现
快速排序 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地..原创 2020-05-13 20:32:53 · 462 阅读 · 0 评论 -
红黑树的实现与应用
红黑树原创 2020-05-03 23:41:23 · 731 阅读 · 0 评论 -
B+树
这个问题是我在看视频的时候老师提到的,虽然之前知道他们各自的索引结构但是还没有研究过原因。在网上一搜答案特别多。但是都特别的啰嗦。于是总结了这篇文章。一、B-树和B+树的区别很明显,我们要想弄清楚原因就要知道B-树和B+树的区别。为了不长篇大论。我们直接给出他们的形式总结他们的特点。1、B-树B-树是一种自平衡的搜索树,形式很简单:这就是一颗B-树。针对我们这个问题的最核...原创 2020-04-26 23:43:27 · 277 阅读 · 0 评论 -
算法进阶——贪心算法、动态规划算法
贪心算法贪心算法主要适用于:局部最优策略能导致产生全局最优解。也就是当算法终止的时候,局部最优等于全局最优。它不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。所以对所采用的贪心策略一定要仔细分析其是否满足无后效性。实现/** * 会议类,需实现Comparable接口 */public class Me...原创 2019-12-19 23:37:42 · 376 阅读 · 0 评论