码迷,mamicode.com
首页 >  
搜索关键字:空间复杂度    ( 2067个结果
[转]Java HashMap实现原理与源码分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但...
分类:编程语言   时间:2015-05-14 15:44:08    阅读次数:305
九章算法面试题29 子矩阵的最大公约数
给定n*n的矩阵,需要查询任意子矩阵中所有数字的最大公约数。请给出一种设计思路,对矩阵进行预处理,加速查询。额外的空间复杂度要求O(n^2)以内。...
分类:编程语言   时间:2015-05-12 15:48:12    阅读次数:176
软考:排序
该文章是关于数据结构部分排序的总结,包括各种排序方法的时间和空间复杂度的分析,主要从直接插入、交换(冒泡、快速)、选择(直接选择、堆排序)和归并四类来分析。 直接插入:     依次将每个记录插入到一个已排好序的有序表中,从而得到一个新的、记录数增加1的有序表。具体:插入第i个记录时,前i-1已经排好序,此时将第i个记录的关键字和第i-1,i-2比较,从而找到插入位置插入位置及其后记录...
分类:编程语言   时间:2015-05-11 20:12:34    阅读次数:218
JAVA计算器(有无限加括号功能)+string与double互相转化
java老师布置的作业,要我们编个计算器,而且要有括号功能。。。编的恶心哪,600多行代码,调试来调试去终于能用了,但是估计还有bug。 有一个bug我自己知道,但是不影响正常使用:可以存在前导零,就是说可以有0087这种数字,计算器会认为这就是87,。 下面是两个截图,左边是输入,右边是输出。 这个计算器的核心算法就是对左边的字符串进行处理,得出右边的结果,其中要考虑到括号匹配、负号、乘除优先级等等问题,这一个算法写了200行。 因为字符串比较短,最多就几十,所以我的算法比较暴力,没有考虑时间和空间复杂度...
分类:编程语言   时间:2015-05-07 19:01:18    阅读次数:253
旋转字符串
题目描述 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。 例如,字符串 abcdef ,若要让def翻转到abc的前头,只要按照下述3个步骤操作即可: 首先将...
分类:其他好文   时间:2015-05-05 21:57:37    阅读次数:139
建造者模式构建可复用性大集合切片循环
packagecom.qunar.piao.sight.common.util; importcom.google.common.annotations.GwtCompatible; importorg.apache.xmlbeans.impl.xb.xsdschema.Public; importjava.util.Collection; importjava.util.List; /** *Createdbyyubin.qion2015/4/15. */ publicclassSubListUtil..
分类:其他好文   时间:2015-05-05 19:54:06    阅读次数:130
【算法设计-堆排序】大根堆排序
1.堆排序不仅拥有与归并排序一样的时间复杂度为o(nlgn),而且空间复杂度所占秩序额外的几个元素空间,这个又有插入排序的优势。 2.堆排序分为3部分,第一部分是保持堆的性质的函数MAX_HEAPIFY函数,用于保持堆的性质:父结点的值要大于子节点。                                      第二部分是创建大根堆的函数,BUILD_MAX_HEAP这个函数从第一...
分类:编程语言   时间:2015-05-03 23:45:15    阅读次数:210
关于提高C语言执行效率的几点
1、以空间换取时间程序的复杂度包含时间复杂度和空间复杂度,而随着计算机硬件的发展,渐渐放低了对空间复杂度的要求,在很多情况下,为了换取程序的执行效率,牺牲计算机的空间。比如字符串的相关操作、使用缓存技术等。2、算法时间复杂度更低、效率更高的算法可以提高执行效率。一个简单的例子,计算1~100这些数的和,可以循环100次,也可以直接使用求和公式,在执行效率上,是显而易见的。3、嵌入汇编汇编代码是低级语...
分类:编程语言   时间:2015-05-03 13:21:22    阅读次数:115
(数组)众数问题
题目:给一数组,如果存在众数,找出众数,即超过一半的数,如果不存在,返回-1.思路:众数:众数出现的次数大于其他所有数出现次数之和方法1:hashmap通过遍历数组,将数组每个数都通过hashmap来统计其出现的个数,如果某个数个数超过一半,则为众数。时间空间复杂度均为O(n)方法2:Moore V...
分类:编程语言   时间:2015-05-03 11:58:33    阅读次数:229
剑指offer 面试题40—数组中两个只出现一次的数字
题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度O(n),空间复杂度O(1)。 基本思想: http://blog.csdn.net/wtyvhreal/article/details/44260321 #include using namespace std; int Find1(int n)//从低位开始找第...
分类:编程语言   时间:2015-05-03 09:20:34    阅读次数:139
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!