相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。 list 内部为双向链表,内部元素互相以link串接起来,每个元素都知道其前一个元素以及下一个元素的位置。template
struct _...
分类:
其他好文 时间:
2015-07-27 13:16:10
阅读次数:
130
1.介绍顺序存储容器 : string、vector、list、deque关联存储容器:map底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错, 只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响. set 和map都是无序的保存元素,只能通过它提...
分类:
其他好文 时间:
2015-07-20 23:20:06
阅读次数:
146
排列a包含N分子,其元素属于[0,N]之间,且不存在反复的元素。请你找出数组中缺失的元素(由于[0,N]之间有N+1个元素。而数组仅仅能存储N个元素。所以必定缺少一个元素)。当中对数组的操作满足下列的条件:不能在常数时间内读取数组中的元素,可是可以读取数组中元素的某一个bit值。可以在常数时间内交换...
分类:
编程语言 时间:
2015-07-09 19:43:15
阅读次数:
130
一、数据结构:hash_map原理
hash_map基于hash table(哈希表)。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。
其基本原理是:使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标,hash值)相对应,于是用这个数组单元来存储这个元素...
分类:
编程语言 时间:
2015-06-23 11:59:53
阅读次数:
166
vector-概述: STL容器Vector是一个动态数组,随机存取任何元素都能在常数时间完成。可以通过迭代器随机的存取,当往其插入新的元素时,如果在结尾插入,将会执行效率比较高,而如果往中间的某个位置插入,其插入位置之后的元素都要后移,因此效率就不是那么的高。Vector是一个线性顺序结构,相当....
分类:
其他好文 时间:
2015-05-30 17:51:31
阅读次数:
137
1.对于表的所有操作来说,都可以使用数组来实现,而且数组虽然是静态分配的,但内部存储数组的vector类却允许在需要时将数组的大小增加一倍。2.正是因为数组的实现,使得printList以线性时间来执行,而findkth甚至是通过常数时间。最不济的是插入和删除了,如果位置不好,比如说在0号位置插入就需要将整个数组的所有元素都向后移,为O(N)。正是为了避免插入和删除的线性开销,我们就开始使用一种叫做...
分类:
其他好文 时间:
2015-05-08 09:37:45
阅读次数:
163
kafka设计原理介绍背景介绍Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafk....
分类:
其他好文 时间:
2015-04-25 22:44:13
阅读次数:
320
背景介绍Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消....
分类:
其他好文 时间:
2015-04-24 01:00:00
阅读次数:
219
数组实现双端队列的时候注意区别判断上溢和下溢。用两个栈实现队列,就相当于把两个栈底靠在一起(背靠背),一个栈用来出队列,一个栈用来进队列。这个队列的操作时间大部分时候是常数时间,除了出列的栈为空,需要把进列的栈全部转移过去,再出列。Back()操作和Pop()操作类似,也是这样。而两个队列实现栈,队...
分类:
编程语言 时间:
2015-04-11 20:41:49
阅读次数:
254
背景介绍
Kafka简介
Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输同时支持离线数据...
分类:
其他好文 时间:
2015-03-10 17:19:03
阅读次数:
197