码迷,mamicode.com
首页 >  
搜索关键字:复杂度    ( 16171个结果
笔试算法题(22):二分法求旋转数组最小值 & 骰子值概率
出题:将一个数组最开始的k个(K小于数组大小N)元素照搬到数组末尾,我们称之为数组的旋转;现在有一个已经排序的数组的一个旋转,要求输出旋转数组中的最小元素,且时间复杂度小于O(N);分析:时间复杂度小于O(N)也就是不能用常规的遍历思路;可以将数组看成两个都是递增序列(假设为升序)的子数组,并且前半...
分类:其他好文   时间:2014-05-27 00:40:17    阅读次数:283
笔试算法题(21):将stack内外颠倒 & 判断扑克牌顺子
出题:要求用递归将一个栈结构的元素内外颠倒;分析:本题再次说明系统栈是程序员最好的帮手,但递归度较高所以时间复杂度较大,可以使用空间换时间的方法(额外数组保存栈元素,然后逆向压入);第一层递归(清空栈元素,并使用系统栈保存):[1,2,3,4,5],栈顶元素为1,将1弹出之后,递归处理[2,3,4,...
分类:其他好文   时间:2014-05-27 00:33:08    阅读次数:445
笔试算法题(24):找出出现次数超过一半的元素 & 二叉树最近公共父节点
出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字;分析:解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话,划分元素肯定就是这个数字;解法2:首先创建1/2数组大小的Hash Table(哈希表可以替代排序时间,...
分类:其他好文   时间:2014-05-26 23:23:48    阅读次数:453
c排序算法大全
排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法 对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面将给出详细的说明。《计算机程序设计技巧》(第三卷,排序和查找)对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个...
分类:其他好文   时间:2014-05-26 16:18:55    阅读次数:304
STL
有序容器:vector[连续内存] 拥有一段连续的地址空间,首地址不变,按顺序存放,拥有高效的随机存储和访问,毕竟有迭代器作为序号。 从尾部插入和删除很快,其他地方插入和删除操作的时间复杂度就高喽,需要大范围内存的复制粘贴,效率低下,就像数组一样.有空间预留的特点,操作起来消耗内存空间。capa.....
分类:其他好文   时间:2014-05-26 07:10:59    阅读次数:244
0521.如何拆分View Controller进而实现轻量级的View Controller[UIKit]
参考文章来自objcio网站   为什么要编写轻量级的View Controller??   1、作为iOS项目中最大的文件,View Controllers中的代码复用率几乎是最低的 2、重量级的View COntroller加大了测试的复杂度。   所以关注View Controller的瘦身,把业务逻辑、网络请求、Views的代码移到合适的地方,进而提高代码可读性、降低耦合...
分类:其他好文   时间:2014-05-24 23:34:38    阅读次数:427
排序(二)键索引、桶排序、位示图、败者树等
排序(二) 以上排序算法都有一个性质:在排序的最终结果中,各元素的次序依赖于它们之间的比较。我们把这类排序算法称为比较排序。 任何比较排序的时间复杂度的下界是nlgn。   以下排序算法是用运算而不是比较来确定排序顺序的。因此下界nlgn对它们是不适用的。   键索引计数法(计数排序) 计数排序假设n个输入元素中的每一个都是在0到k区间的一个整数,其中k为某个整数...
分类:其他好文   时间:2014-05-24 20:26:16    阅读次数:273
NOI2012 美食节 解题报告
首先看看BZOJ 1040《修车》,如果没有做,请做完后再来看这道题。 我们惊喜地发现,这道题的题意跟 修车 基本一样。很可惜,数据范围。。。 我试了一下直接修改 修车 的代码,建成2+n+p*m个点,n*m*p条边的有向图,对其求费用流,时间复杂度O((2+n+p*m)^2*(n*m*p)...
分类:其他好文   时间:2014-05-24 12:40:47    阅读次数:399
排序算法(1) 快速排序 C++实现
快速排序是笔试面试经常问到的一个排序。因此首先来复习快速排序。时间复杂度:O(n*lgn) 最坏:O(n^2) 空间复杂度:O(lgn),最坏O(n) 不稳定。
分类:编程语言   时间:2014-05-24 11:21:29    阅读次数:326
快速排序
快速排序如同其名,是排序中性能比较好的一个排序算法,当数组是顺序的话,他的最差的时间复杂度是O(N^2),一般的时间复杂度是O(n*lgn). 快速排序的思想就是分治,每一趟排序过程都把一个数放到最终的位置上面去。然后这个位置把数组分为前半部分和后半部分。针对前半部分和后半部分再递推进行快速排序。 快排的java实现: public class Sort { public stat...
分类:其他好文   时间:2014-05-23 01:44:26    阅读次数:218
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!