码迷,mamicode.com
首页 >  
搜索关键字:常数时间    ( 149个结果
STL源码剖析 容器 stl_deque.h
deque ------------------------------------------------------------------------ ??一直看不懂 operator->() ,不明白它为什么不用接受参数,直接 return &(operator*()) 好像我们用迭代器的时候也不没怎么用到这个函数,甚至我都不会用 1.概述 vector 是单向开口的连续线性空间,deque 则是一种双向开口的连续线性空间 允许常数时间内对起头端进行元素的插入和移除操作 没有容量概念,因为它是动...
分类:其他好文   时间:2014-07-22 00:32:34    阅读次数:225
关于海量数据常用的数据结构
数据结构应用场景示例哈希表要求所有键值对放入内存,查找可以在常数时间内完成。l 提取某日志访问百度次数最多的IPl 统计不同电话号码的个数堆插入和调整需要O(logn)时间,n为堆元素的个数,而获取堆顶元素只需要常数时间。l 求出海量数据前K大的数l 求海量数据流的中位数BitMap通常记录整数出现...
分类:其他好文   时间:2014-07-18 19:32:31    阅读次数:218
哈希表工作原理 (并不特指Java中的HashTable)
1. 引言 哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的....
分类:编程语言   时间:2014-07-17 14:13:26    阅读次数:272
二项队列
虽然左式堆每次操作花费O(logN),这有效的支持了合并,插入和DeleteMin,但还是有改进的余地,因为我们知道,二叉堆以每次操作花费常数平均时间支持插入。二项队列支持所有这种操作,每次操作的最坏情形运行时间为O(logN),而插入操作平均花费常数时间。二项队列结构二项队列不同于左式堆和二叉堆等...
分类:其他好文   时间:2014-07-10 11:01:58    阅读次数:208
调用empty()而不是检查size()是否为0
对任一容器C,代码if (c.size() == 0)本质上与if (c.empty())是等价的。既然如此,为什么要偏向于某一种形式呢,尤其是考虑到empty()通常被实现为内联函数,并且它所做的仅仅是返回size()是否为0。 理由很简单:empty()对所有的标准容器都是常数时间操作,而对一些list实现,size()耗费线性时间。 原因:在所有的标准容器中,只有l...
分类:其他好文   时间:2014-06-26 08:10:47    阅读次数:266
数据结构《20》----Immutable stack
有趣的函数式数据结构《一》----不可变栈 什么是不可变?往栈中插入一个元素,原来的栈保持不变,返回一个新的栈(已插入新的元素)。 push, pop,getMax 等操作都要求在 常数时间内完成。 可能读者会产生疑惑,既然要返回一个新的栈,是不是就必须先拷贝一份原来的栈,然后在新的栈中插入元素。 但是这样复杂度就是线性的,如何能够在常数时间内完成呢?? 这里,就是immutab...
分类:其他好文   时间:2014-06-18 06:40:42    阅读次数:220
list C++实现
模仿STL中list,实现了其大部分功能。list可以高效地利用内存资源,常数时间的插入删除操作。并且,list除了erase外,不怎么存在迭代器失效的现象。#include#include#includeusing namespace std;templatestruct _List_node{ ...
分类:编程语言   时间:2014-06-17 23:32:51    阅读次数:468
HDu 2138 How many prime numbers 高效Miller素数测试
题目就是给出一组数,让我们测试其中有多少个是素数。 求素数有测试sqrt(n)个数的方法,有筛子方法,不过对于本题这样的题目来说就都不是高效的。 本题使用Miller Rabin素数测试法,效率奇高,对于不是极其大的整数测试都几乎是常数时间。令人神往的算法啊。 网上有个程序,好像是什么吉林的模板程序,不过我一直没看懂他是什么思路写的,是个AC的程序,不过却是错误的,呵呵,因为程序一直把9当做...
分类:其他好文   时间:2014-06-15 18:48:07    阅读次数:194
C++ list模板类介绍
简介          List是一种可在常数时间内在任何位置执行插入和删除操作的顺序容器。list是双向链表,其迭代器是双向的。与其他顺序容器(array, vector, deque)相比,list容器在任意位置执行插入、提取、和移动元素的操作更高效,但它不能通过在容器中的位置直接获取元素。 成员函数 复制控制 list::list()  ...
分类:编程语言   时间:2014-05-22 11:44:49    阅读次数:433
149条   上一页 1 ... 13 14 15
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!