zoukankan      html  css  js  c++  java
  • 优先队列(存储结构数组)--Java实现

     1 /*优先队列--是对队列的一种改进
     2  *要存储的数据存在优先级--数值小的优先级高--在队头
     3  *优先队列的实现
     4  *1.数组:适合数据量小的情况(没有用rear+front实现)
     5  *优先队列头在items-1,队列尾在0是固定的
     6  *2.堆:适合数据量大的情况
     7  *优先队列的效率:插入O(N)移除O(1)
     8  *优先队列的应用:操作系统线程调度算法
     9  * */
    10 public class MyPriorityQueue {
    11     private int maxSize;
    12     private long[] arr;//插入的时候保证有序
    13     private int items;
    14     
    15     public MyPriorityQueue(int s) {
    16         maxSize = s;
    17         arr = new long[maxSize];
    18         items = 0;
    19     }
    20     
    21     public void insert(long key){
    22         int j;
    23         if(items == 0){//为空直接加入
    24             arr[items++] = key;
    25         }
    26         else{//不为空就将小元素方在最上面--队列头
    27             for(j = items-1;j >= 0;j--){
    28                 if(key > arr[j]){
    29                     arr[j+1] = arr[j];
    30                 }
    31                 else{
    32                     break;
    33                 }
    34             }
    35             arr[j+1] = key;
    36             items++;
    37         }
    38     }
    39     
    40     public long remove(){
    41         return arr[--items];
    42     }
    43     
    44     public boolean isEmpty(){
    45         return items == 0;
    46     }
    47     
    48     public boolean isFull(){
    49         return items == maxSize;
    50     }
    51     
    52     public long getPeekMin(){
    53         return arr[items -1];
    54     }
    55     
    56     public void diaplayPQ(){
    57         for(int i = items- 1;i >= 0;i--){
    58             System.out.print(arr[i] + " ");
    59         }
    60         System.out.println();
    61     }
    62 }
  • 相关阅读:
    mysql中使用row_number()函数
    Android开发环境的搭建之(二)Android Studio的安装
    Android开发环境的搭建之(一)Java开发环境的安装
    进程与线程
    工作起始之博客搬家
    MapReduce的自制Writable分组输出及组内排序
    map端join和reduce端join的区别
    String.StartsWith 方法
    RPC和心跳机制
    MAPREDUCE中的序列化
  • 原文地址:https://www.cnblogs.com/sun1993/p/7680478.html
Copyright © 2011-2022 走看看