第一篇博客——基于数组的优先队列(java版)

看过园子里和CSND上那么多大牛精彩的博客后,早就按捺不住想亲手写上几篇。奈何每次坐在电脑前准备敲字的时候,立马赶到浑身不自在,无从下手。实在是因为自高考之后,大学以来,本人几乎就再没动笔写过一篇文字,写作水平退化实在严重。今天鼓起勇气开始写作博客,一方面希望通过多写慢慢地找回写作的感觉,一方面也希望通过博客和大家多多交流,共同进步。

既然是第一次试手,就写个简单易懂的内容——优先队列。

  话不多说,先上代码。

 1 /**
 2  * @author Mr Left
 3  * @version 1.0
 4  */
 5 public class PriorityQueue {
 6     private int[] elems;
 7     private int max;//队列最大容量
 8     private int size;//队列当前容量
 9
10     public PriorityQueue(int s) {
11         this.max = s;
12         elems = new int[max];
13         size = 0;
14     }
15
16     public void enqueue(int ele) {
17         if(size == 0)
18             elems[size++] = ele;
19         else {
20             int i = size-1;
21             while(i>=0 &&  ele<elems[i]) {
22                 elems[i+1] = elems[i];
23                 i--;
24             }
25             elems[i+1] = ele;
26             size++;
27         }
28
29     }
30
31     public int dequeue() {
32         return elems[--size];
33     }
34
35     public int peek() {
36         return elems[size-1];
37     }
38
39     public boolean isEmpty() {
40         if(size == 0)
41             return true;
42         else
43             return false;
44     }
45     public boolean isFull() {
46         if(size == max)
47             return true;
48         else
49             return false;
50     }
51
52
53     public static void  main(String[] args) {
54         PriorityQueue priorityQueue = new PriorityQueue(10);
55         priorityQueue.enqueue(1);
56         priorityQueue.enqueue(3);
57         priorityQueue.enqueue(2);
58         priorityQueue.enqueue(9);
59         priorityQueue.enqueue(4);
60         priorityQueue.enqueue(5);
61         priorityQueue.enqueue(3);
62         priorityQueue.enqueue(2);
63         priorityQueue.enqueue(3);
64         priorityQueue.enqueue(2);
65
66         System.out.println(priorityQueue.dequeue());
67         System.out.println(priorityQueue.dequeue());
68         System.out.println(priorityQueue.dequeue());
69         System.out.println(priorityQueue.dequeue());
70         System.out.println(priorityQueue.dequeue());
71         System.out.println(priorityQueue.dequeue());
72         System.out.println(priorityQueue.dequeue());
73         System.out.println(priorityQueue.dequeue());
74         System.out.println(priorityQueue.dequeue());
75         System.out.println(priorityQueue.dequeue());
76     }
77 }

  当然,这代码有很多不足之处,比如每次插入时要判断是否已满,弹出时要判断是否为空,这我都省略未写,大概意思表达清楚就行了。

  好了,今天就写这么点,争取以后每天都有新博文。

第一篇博客——基于数组的优先队列(java版),布布扣,bubuko.com

时间: 2024-10-11 01:30:33

第一篇博客——基于数组的优先队列(java版)的相关文章

第一篇博客:一个双色球游戏 、以及个人介绍

一.双色球小游戏 双色球类(6红1蓝): 1 package top.liaoyingpeng.bean; 2 3 import java.util.Arrays; 4 5 public class Balls { 6 private int[] red = new int[6]; 7 private int blue; 8 private BallBox makeBy; 9 10 // 全机器生成 11 protected Balls(BallBox bx) { 12 makeBy = bx;

我的第一篇博客 —— 用 js 和 css 简单实现瀑布流布局

一个拖延症晚期患者的自述: 注册了博客快一个月了,终于要迎来我的第一篇博客了哈哈哈!!! 刚注册的时候,满脑子要频繁更新,扩充自己的知识库,一到真正落实,就不得不为懒惰屈服,还好有了学习计划,以后应该会每周一更(不更当我没说).当然了,肯定是希望被更多人看到,帮助到大家,如果没人看的话就当作是自己的积累与记录吧! 还有,我目前工作是前端工程师,还是一名刚入行不久的菜鸟哈哈哈!!!现在主要目标是先把前端知识巩固好,再逐步往全栈领域发展(毕竟装13是我一生的职责). 所以,请各位大佬们多多指教,如果

我的第一篇博客记录我的IOS生涯

这是我的第一篇博客,只为了记录我在IOS开发旅程中得成长之路,一直觉得能发表几百篇的都是大牛,一直都是我崇拜的对象,我希望现在的一小步能成为将来的一大步,坚持每天发表一篇博文,养成一个良好的每天学习新知识的习惯,希望多年以后点开这第一篇博客能感叹当初的自己是多么的幼稚,但也感谢当年的坚持!come on!活着就是为了改变世界!

第一篇博客,希望是一个好的开始

博客园"占座位" 因为学习专业的原因,经常浏览博客学习和解惑.在前辈们的作品中学到了很多,也感受到了很多.通过博客的方式去分享知识和记录自己的成长.这种积极向上的,乐于分享的精神,让我很受鼓舞.我时刻准备着加入这一大军的行列.于是我就注册了个账号,呵呵. 第一篇博客 经常会突发奇想的计划着怎么怎么样,却在行动的时候虎头蛇尾了,很难坚持作下去.这或许是很多人都存在的问题.在别人博客上看到:"或许写博客是一个不错的方法".通过博客,经常来记录一下自己的学习,分享一下自己

第一篇博客《import tensorflow的问题解决》

在jupyter notebook中死活无法import jupyter 搞了很久,最后是解决了,过程如下: 1)安装anaconda3 4.2.0版本 2)解决activate tensorflow问题 3)解决import tensorflow问题 以下就两个方面进行详细记录: 1)activate tensorflow失败问题 https://www.cnblogs.com/lvsling/p/8672404.html 根据以上文章操作,解决了激活tensorflow的问题,上述文章我是只

第一篇博客当测试,codeigniter遇到坑了

第一篇博客当测试,codeigniter遇到坑了,耽误了1天时间,才弄明白 如果你发现无论输入什么 URL 都只显示默认页面的话,那么可能是你的服务器不支持 PATH_INFO 变量,该变量用来提供搜索引擎友好的 URL . 解决这个问题的第一步是打开 application/config/config.php 文件, 找到 URI Protocol 信息,根据注释提示,该值可以有几种不同的设置方式, 你可以逐个尝试一下. 如果还是不起作用,你需要让 CodeIgniter 强制在你的 URL

Hello World —— 我的第一篇博客

2019.2.22,我开始写起了属于我的博客,没有什么花里胡哨的想法,目的很简单:就想将自己在学习过程中的每一阶段所学到的知识.所遇到的问题用文字的方式记录下来,方便以后回头看看的时候,能知道自己在这个行业里处于一个什么阶段.好了,废话不多说,第一篇博客,不谈技术,先聊聊自己的一些想法吧.我最喜欢的一件事就是在晚上,一个人静静地坐在那里,看着满天繁星,思考着自己的问题,那时候很安静,很孤独.不过我喜欢孤独.技术也是这样,学技术的道路是孤独,是寂寞的,你要靠你自己一点点提升,难受了你要靠你自己挺过

第一篇博客------致自己

我为什么在博客园开博? 2019年5月10日,我在博客园写下自己的第一篇博客,用以记录和促进自己的技术成长.同时也希望自己的记录能给需要的人带来点启示. 我的博客将由以下几个分类的文章组成: 编程语言:到目前为止开发主要用Java,涉猎Java.Python.JQuery.js等.这个分类将会分享一些编程过程中理解到的小trick.值得借鉴的代码等. Lunix操作:学号Lunix操作真的是会收益终身的事情,而且装逼属性Max.这个模块主要会分享一些Lunix相关的技巧. 数据库:数据库是开发过

我的第一篇博客《Hello World》

Hello World! 大家好,这是我的第一篇博客. 作为一名程序员,为了保持优良的传统,所以就从Hello World 开始吧. 简单的介绍 关于名字 本人呢不太会起名字,试了好多个都被占用了,受一本小说影响,所以就起了这个名字. 同时呢,大家可以叫我铵静,做一个铵静的美男子哈. “高手有一颗寂寞的心,因为高手的造就本就是用寂寞堆积而成” —— <高手寂寞> 作者:兰帝魅晨 我的日常 目前主要从事Java EE企业级应用开发相关工作,业余时对网络安全比较感兴趣.周末主要是看看书,听听歌,偶