摘要:
目录: 1、为什么要用?(它的好处或优点) 2、原理是什么?(效果) 3、怎样去实现?(想马上看代码的同学点这里) 为什么要用? 希尔排序是直接插入排序的一种更高效的改进版本,是一种分组插入排序,而效率的优劣跟它所使用的步长序列有直接关系。 1、时间复杂度: 平均情况:O(nlog2n) 根据步长序 阅读全文
摘要:
单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式。 你的任务是设计一个 getInstance 方法,对于给定的类,每次调 阅读全文
摘要:
目录: 1、为什么要用?(它的好处或优点) 2、原理是什么?(效果) 3、怎样去实现?(想马上看代码的同学点这里) 为什么要用? 1、时间复杂度: 平均情况 O(n2)、最坏情况O(n2),最好情况O(n) 2、空间复杂度: O(1) 3、稳定性: 稳定 4、复杂度:简单 容易实现 适用场景: 有序 阅读全文
摘要:
为什么排序算法很重要? 有效的排序算法在一些算法(例如搜索算法与合并算法)中是重要的(引自维基百科),个人觉得排序后就可以使用万能的对分检索啦!(排序算法是许多算法的选决条件) 怎样衡量一个排序算法的优劣? 1、时间复杂度(最好情况,最差情况,平均情况 :O(f(n))描述) 2、空间复杂度(占用的 阅读全文
摘要:
目录: 1、为什么要用?(它的好处或优点) 2、原理是什么?(效果) 3、怎样去实现?(想马上看代码的同学点这里) 为什么要用? 1、时间复杂度: 平均情况 O(n2)、最坏情况O(n2),最好情况O(n) 2、空间复杂度: O(1) —— 可理解为一个变量 3、稳定性: 稳定 4、复杂度:简单 容 阅读全文