摘要:
1、任何技术都是针对特定场景设计的,也就是说,为了解决某个问题而设计的。2、考虑下面一种场景:一个小旅馆,只有一个卫生间,有清洁人员,店主人,和旅客。卫生间用完之后,就会自动锁闭,必须取钥匙,才能进入卫生间。3、在上面的场景中,卫生间是共享资源,清洁人员和旅客使用卫生间的过程,就是两个线程,钥匙是互斥体。4、假定卫生间只有一个坑,一次只能一个人使用,因此就只有一个钥匙。谁要使用卫生间,必须拿到钥匙。别人拿到钥匙,自己必须等待,拿钥匙就是,程序中lock互斥体。5、通过钥匙保证了,卫生间一次只能一个人使用。这样的好处是:通过一个小钥匙,控制了一大块资源的使用。6、钥匙保证了,不同人之间不能同时使 阅读全文
posted @ 2013-10-24 19:41
Andy Niu
阅读(1628)
评论(0)
推荐(1)
摘要:
1、数据结构分为逻辑结构和物理结构。2、逻辑结构:元素之间的关系,分为: a、集合结构:在同一个集合中,元素之间没关系。 b、线性结构:元素一对一的关系 c、树形结构:元素一对多的关系 d、图形结构:元素多对多的关系3、物理结构:元素的存放形式 a、顺序存放:元素存放在连续的存储单元里 b、链式存放:元素存放在任意的存储单元里,通过指针,知道与自己关联的元素。 阅读全文
posted @ 2013-10-24 18:58
Andy Niu
阅读(274)
评论(0)
推荐(0)
摘要:
1、哈希表解决什么问题? 假设有一组记录,每条记录都是学生名,成绩的键值对,在一般的线性表中,每条记录的存放是没有规律的。如果要找Andy的成绩,因为不知道Andy这条记录的存放位置,必须遍历集合,逐个比较,找到Andy这条记录,取出成绩。时间复杂度为O(N),效率很低。哈希表就是解决这个问题的。2、如何解决的? 上面问题的关键是,根据学生名不能确定存放位置,哈希表是这样做的:设计一个映射函数,把学生名映射到存放的地址。这样就行了,给我一个学生名,我只要根据映射函数计算一下,就知道了存放位置,直接去那个地方去数据,时间复杂度为O(1)。同样当插入记录的时候,根据映射函数计算一下,这条记录应.. 阅读全文
posted @ 2013-10-24 18:46
Andy Niu
阅读(454)
评论(0)
推荐(0)
浙公网安备 33010602011771号