二叉堆優先佇列
-
public class MaxPQ <Key extends Comparable<Key>> {
-
private Key[] pq;
-
private int N=0;
-
public MaxPQ(int maxN){
-
pq=(Key[])new Comparable[maxN+1];
-
}
-
-
public boolean isEmpty(){
-
return N==0;
-
}
-
-
public int size(){
-
return N;
-
}
-
-
public void insert(Key v){
-
pq[++N]=v;
-
swim(N);
-
}
-
-
private void swim(int k) {
-
while(k>1 && less(k/2,k)){
-
exch(k/2,k);
-
k=k/2;
-
}
-
}
-
-
private boolean less(int i, int j) {
-
return pq[i].compareTo(pq[j])<0;
-
}
-
-
public Key delMax(){
-
Key max=pq[1] ;
-
exch(1,N--);
-
pq[N+1]=null;
-
sink(1);
-
return max;
-
}
-
-
private void sink(int k) {
-
while(2*k<=N){
-
int j=2*k;
-
if(j<N && less(j,j+1))
-
j++;
-
if(!less(k,j))
-
break;
-
exch(k,j);
-
k=j;
-
}
-
}
-
-
private void exch(int i, int j) {
-
Key t=pq[i];
-
pq[i]=pq[j];
-
pq[j]=t;
-
}
-
-
public static void main(String[] args){
-
Integer[] data={100,20,21,28,22,26,80,33,3,2,9,8,7,10,77,66,99,96,91,94};
-
-
MaxPQ<Integer> pq=new MaxPQ<>(data.length);
-
for(int i=0;i<data.length;i++){
-
pq.insert(data[i]);
-
}
-
while(!pq.isEmpty()){
-
System.out.println(pq.delMax());
-
}
-
}
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2125325/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 二叉堆實現優先佇列佇列
- 堆--優先佇列佇列
- 堆與優先佇列佇列
- 堆和優先佇列佇列
- 堆——神奇的優先佇列(上)佇列
- 『演算法與資料結構』優先佇列 二叉堆演算法資料結構佇列
- 堆和堆的應用:堆排序和優先佇列排序佇列
- 堆、堆排序和優先佇列的那些事排序佇列
- 最詳細版圖解優先佇列(堆)圖解佇列
- 優先佇列的一種實現方式—堆佇列
- 【資料結構】回顧優先佇列(堆)資料結構佇列
- java使用PriorityQueue即優先佇列實現大根堆和小根堆Java佇列
- PHP優先佇列PHP佇列
- 優先佇列 (轉)佇列
- 資料結構與演算法——優先佇列類的C++實現(二叉堆)資料結構演算法佇列C++
- 完全二叉樹實現優先佇列與堆排序二叉樹佇列排序
- 淺談優先佇列佇列
- STL 優先佇列 用法佇列
- 優先佇列和堆排序佇列排序
- 堆排序與優先佇列排序佇列
- Java優先佇列(PriorityQueue)示例Java佇列
- 01揹包優先佇列優化佇列優化
- java資料結構基礎-利用Heap(堆)實現PriorityQueue(優先佇列)Java資料結構佇列
- 棧,佇列,優先順序佇列簡單介面使用佇列
- Redis實現任務佇列、優先順序佇列Redis佇列
- NO GAME NO LIFE(優先佇列/最小堆)GAM佇列
- 優先佇列的比較器佇列
- 封裝優先順序佇列封裝佇列
- POJ 3253 Fence Repair 優先佇列AI佇列
- 優先佇列的效能測試佇列
- hdu5040 優先佇列+bfs佇列
- 牛客網 複數集合(小根堆的優先佇列、北郵機試)佇列
- 佇列 優先順序佇列 python 程式碼實現佇列Python
- 資料結構-詳解優先佇列的二叉堆(最大堆)原理、實現和應用-C和Python資料結構佇列Python
- 演算法面試(三) 優先佇列演算法面試佇列
- STL優先佇列最小堆最大堆佇列
- STL醜數(set+優先佇列)佇列
- 【圖論】拓撲排序+優先佇列圖論排序佇列