随笔分类 -  数据结构

朴素的数据结构
关于C++ STL中的priority_queue的使用
摘要:优先队列是一种比较常用的结构,虽然被称为队列,但却不是队列。这里的队列我猜测是源自于操作系统中的概念。操作系统负责管理计算机的资源并且负责调配,而对cpu计算时间资源的调配是一个比较核心的问题,线程是cpu资源调度的最小单元,通常每一个线程都会绑定一个优先级的,在操作系统复杂的调度机制中,有这么一小块场景中决定哪一个线程使用cpu资源是有优先级决定的,这样操作系统就需要维护一个优先级相关的队列,这里把它命令为队列,我猜想是因为这些线线都在排队等待cpu资源,所以在这个场景里把它叫做队列,而实际上实现起来,它的逻辑结构是一棵树,可以用二叉堆来实现。 priority_queue is a si. 阅读全文

posted @ 2012-05-29 17:48 涅槃火凤 阅读(6974) 评论(0) 推荐(0)

散列表入门
摘要:学过编程语言的人,大多知道数组的概念,通过数组下标就可以访问到数组的元素,这里数组的下标是一种key,而此key的位置处存储的是所谓的卫星数据。我们希望能够在O(1)的时间里访问到某个key标识的卫星数据,数组在通常的情况下是一个不二的选择,数组的这种寻址方法学术上叫做直接寻址法,如何称之为“直接”呢?这里的直接指的是,依赖的key和存储的key本质上是一个东西,未经过映射和转换。那么如果key经过映射和转化,那么你已经在做散列了,也就是Hash。 开发寻址法有明显的限制,那就是key必须是整数,而且如果key分布的域较大的时候,安排数组时可能会浪费很大的地址空间。使用Hash能够,通过映射. 阅读全文

posted @ 2012-05-10 10:53 涅槃火凤 阅读(300) 评论(0) 推荐(0)

导航