DataStructures Learning..
鱼塘鱼汤
A man
展开
-
关于堆排序(参考自算法导论)
堆排序是一种很有用的排序算法,有用的并不是在排序上的用处,而是那个大根堆和小根堆的建立,在平时的运用中,举足轻重!一个最有用的实例就是操作系统的进程的最大优先权调度算法。从很多进程中,找到优先级最大的进程,然后分配CPU资源。堆排序的主要步骤也就是创建堆。一旦最大堆(最小堆)创建好了,排序也是十分简单的事情了。下面的我们全部以大根堆来做讲解 堆是一种数据结构,可以理解成为一种完全二叉树,但是有个原创 2012-05-30 13:51:37 · 1000 阅读 · 0 评论 -
放弃了std::list,自己实现了一个简单的list
原因 在项目中前人使用了std::list来做一个队列式,支持头或者尾的push操作。使用场景是视频的录制: 生产者:从摄像头采集数据,然后push_front到队列头,如果超过了最大限制,则pop_back队列尾的元素,实现丢帧操作 消费者:从队列里面back拿到桢,然后pop_back删除末尾桢。 所有的list的操作均加入了互斥锁。理论上应该是没有多线程访问的问题的。然而在线上表现却...原创 2018-03-16 18:24:41 · 626 阅读 · 4 评论