algorithm
不负韶华T
泛爱众 而亲仁 有余力 则学文
展开
-
优先队列的一种实现
队列的特点是先进先出。通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。 但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。通常把优先队列比喻成现实生活中的打印。一个打印店里有很多打印机,每台机器的性能不一样,有的打印机打印很快,有的打印机打印速度很慢。当这些打印机陆陆续续打印完自己的任务时进入排队等候状态。如果我这个时候要打原创 2016-10-10 19:58:17 · 839 阅读 · 0 评论 -
优先队列的数组实现(有序)
优先队列上文介绍了一种方法,另一种方法就是在insert()方法中添加代码,将所有较大的元素向右边一定一格以使数组保持有序(和插入排序一样)。这样,最大的元素总会在数组的一边,优先队列的删除最大元素操作就和栈的pop()操作一样了。用数组实现优先队列:(insert已经进行有序操作。pop操作即为peekMax,remove操作)public class PriorityQ { privat原创 2016-10-10 20:04:17 · 3803 阅读 · 1 评论 -
优先队列的链表实现
插入时需要按照优先级从高到低排序,一般操作系统的任务队列调度会用到 /* 优先队列(链表实现) * front 为队头指针(链表头节点) * rear 为队尾指针 */ #include<stdio.h> #include<stdlib.h> typedef struct list_t{ int _element; int _priority;原创 2016-10-10 20:48:57 · 3943 阅读 · 0 评论 -
O(logn*2^logn)和O(n*logn)算法
O(logn*2^logn)和O(n*logn)算法1.for(int i = 1;i < n; i <<=1) for(int j = 0; j < i; j++)这个嵌套循环:1+2+4+…+2^[log(n-1)]=2^[logn]-1=O(n);2. for(int i = 0; i < = n; i ++){ for(int j = 1; j < i; j+=j)...原创 2016-09-27 00:24:46 · 5174 阅读 · 1 评论