/** * 享元模式是一个为了提高性能(空间复杂度)的设计模式 * 他使用与程序会生产大量的相类似的对象是耗用大量的内存的问题 */ (function(){ /** * 制造商 * 型号 * 拥有者 * 车牌号码 * 生产日期 */ var Car = function(make,model,ye... ...
分类:
Web程序 时间:
2017-05-23 08:08:59
阅读次数:
189
排序二 快速排序 目录 要点 算法分析 快速排序算法的性能 时间复杂度 空间复杂度 算法稳定性 完整参考代码 JAVA版本 参考资料 相关阅读 回到顶部 要点 快速排序是一种交换排序。 快速排序由C. A. R. Hoare在1962年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两 ...
分类:
编程语言 时间:
2017-05-20 15:26:32
阅读次数:
164
今天做剑指offer上的一道求逆序对的题,用到了归并排序的思想,时间复杂度为O(nlogn),空间复杂度为O(n)。 偷了个懒从网上找到别人总结的归并排序的算法思想和code,直接粘过来方便随时查。 原文:http://www.cnblogs.com/jianboqi/archive/2013/01 ...
分类:
编程语言 时间:
2017-05-17 18:19:11
阅读次数:
179
要求:如果链表长度为N,时间复杂度要求为O(N),额外的空间复杂度要求为O(1) public class Problem04_ReverseList { // 单链表数据结构 public static class Node { public int value; public Node next... ...
分类:
其他好文 时间:
2017-05-17 14:05:11
阅读次数:
142
空间复杂度 空间性能是排序所需辅助空间大小 所有简单排序和堆排序都是0(1) 快速排序为0(logn),要为递归程序执行过程栈所需的辅助空间 归并排序和基数排序所需辅助空间最多,为O(n) ...
分类:
编程语言 时间:
2017-05-16 17:26:30
阅读次数:
182
斐波拉契数列的计算是一个非常经典的问题,对于小规模的n,很容易用递归的方式来获取,对于稍微大一点的n,为了避免递归调用的开销,可以用动态规划的思想轻松获得,时间复杂度为O(n),空间复杂度为O(1). 但是对于更大规模,需要矩阵法计算 ...
分类:
其他好文 时间:
2017-05-13 22:07:32
阅读次数:
180
开始认真学DP。我对滚动数组的理解是:后一个状态可以由前一个状态求得,便可以使用一维数组重复利用节省空间复杂度。 这个题要注意题目要求的前提,求次数可以看作重量为v[i]价值为1放入w-1的背包,歌曲就是重量和价值都是v[i],简单的转化。 ...
分类:
其他好文 时间:
2017-05-13 01:03:27
阅读次数:
206
通过看作者改进代码运行效率的过程,颇受震撼。以前只是关注一个算法的空间复杂度以及时间复杂度,看到初写的代码,就感觉已经没有可以进行优化的方向了。 但是作者却采用多种方式,达到了令人惊讶的结果。首先记录作者的改进的几个方向。 1、1维比2维数组运行快。 2、浮点数计算效率低。 3、移位比乘除快。 4、 ...
分类:
其他好文 时间:
2017-05-12 19:06:50
阅读次数:
165
ython全栈之路系列之算法一个算法的优劣可以用空间复杂度与时间复杂度来衡量。冒泡排序冒泡排序(英语:BubbleSort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作..
分类:
编程语言 时间:
2017-05-12 14:26:22
阅读次数:
158
多源最短路 Floyd 时间复杂度:O(n3);空间复杂度:O(n2) 单源最短路 SPFA 初始化最短路径表; 源点入队; 取出队首点; 枚举取出点的边; 如果能松弛,就松弛,并把被松弛的点加入队列; 如此循环直到队列为空。 适用于各种找单源最短路的题目; 适用于负权图; 可以根据判断节点的入队次 ...
分类:
其他好文 时间:
2017-05-07 18:40:01
阅读次数:
174