当前位置: 首页 > news >正文

婚礼策划婚礼定制云南网站建设及优化

婚礼策划婚礼定制,云南网站建设及优化,上海做网站的公司哪个好,企业网站备案号密码忘记队列 Queue 队列也是一种线性结构相比数组#xff0c;队列对应的操作是数组的子集只能从一端#xff08;队尾#xff09;添加元素#xff0c;只能从另一端#xff08;队首#xff09;取出元素队列是一种先进先出的数据结构 队列的实现及复杂度分析 QueueE voi…队列 Queue 队列也是一种线性结构相比数组队列对应的操作是数组的子集只能从一端队尾添加元素只能从另一端队首取出元素队列是一种先进先出的数据结构 队列的实现及复杂度分析 QueueE void enqueu(E)E dequeue()E getFront()int getSize()boolean isEmpty() 数组队列的复杂度分析 ArrayQueueE void enqueue(E)     O(1) 均摊E dequeue()            O(n) E getFront()             O(1)int getSize()             O(1)boolean isEmpty()   O(1) 代码实现 public class ArrayQueueE implements QueueE {private ArrayE data;public ArrayQueue(int Capacity){data new Array(Capacity);}public ArrayQueue(){this(10);}Overridepublic int getSize(){return data.getSize();}public int getCapacity(){return data.getCapacity();}Overridepublic boolean isEmpty(){return data.isEmpty();}Overridepublic void enqueue(E e){data.addLast(e);}Overridepublic E dequeue(){return data.removeFirst();}Overridepublic E getFront(){return data.getFirst();}Overridepublic String toString(){StringBuilder res new StringBuilder();res.append(Queue : front [);for (int i 0; i data.getSize(); i) {res.append(data.get(i));if (i ! data.getSize() - 1)res.append(, );}res.append(] tail);return res.toString();}public static void main(String[] args){ArrayQueueInteger queue new ArrayQueue();for(int i 0 ; i 10 ; i ){queue.enqueue(i);System.out.println(queue);if(i % 3 2){queue.dequeue();System.out.println(queue);}}} } 循环队列的复杂度分析 LoopQueueE void enqueue(E)     O(1) 均摊E dequeue()            O(1) 均摊 E getFront()             O(1)int getSize()             O(1)boolean isEmpty()   O(1)front tail                队列为空 (tail 1) % c front  队列已满 tail不用于存储元素capacity中浪费一个空间  代码实现 public class LoopQueueE implements QueueE {private E[] data;private int front, tail;private int size;public LoopQueue(int capacity){data (E[])new Object[capacity 1];front 0;tail 0;size 0;}public LoopQueue(){this(10);}Overridepublic boolean isEmpty(){return size 0;}public boolean isFull(){return front (tail 1) % data.length;}public int getCapacity(){return data.length - 1;}Overridepublic int getSize(){return size;}Overridepublic void enqueue(E e){if (isFull())resize(getCapacity() * 2 1);data[tail] e;tail (tail 1) % data.length;size;}Overridepublic E dequeue(){if (isEmpty())throw new IllegalArgumentException(Dequeue Failed.Queue is empty.);E ret data[front];data[front] null;front (front 1) % data.length;size--;if (size getCapacity() / 4 getCapacity() / 2 ! 0)resize(getCapacity() / 2 1);return ret;}Overridepublic E getFront(){if (isEmpty())throw new IllegalArgumentException(Queue is empty.);return data[front];}public void resize(int newCapacity){if (newCapacity 0)throw new IllegalArgumentException(newCapacity is Illegal.);E[] newData (E[])new Object[newCapacity];for (int i 0; i size; i)newData[i] data[(i front) % data.length];data newData;front 0;tail size;}Overridepublic String toString(){StringBuilder res new StringBuilder();res.append(String.format(LoopQueue Capacity %d, Size %d\n, getCapacity(), getSize()));res.append(front [);for (int i front; i ! tail; i (i 1) % data.length){res.append(data[i]);if ((i 1) % data.length ! tail)res.append(, );}res.append(] tail);return res.toString();}public static void main(String[] args) {LoopQueueInteger queue new LoopQueue();for (int i 0; i 10; i) {queue.enqueue(i);System.out.println(queue);if (i % 3 2) {queue.dequeue();System.out.println(queue);}}} } 性能比较 测试函数 // 测试使用q运行opCount个enqueueu和dequeue操作所需要的时间单位秒private static double testQueue(QueueInteger q, int opCount){long startTime System.nanoTime();for (int i 0; i opCount; i)q.enqueue(i);for (int i 0; i opCount; i)q.dequeue();long endTime System.nanoTime();return (endTime - startTime) / 1000000000.0;} 测试 public static void main(String[] args){int opCount 100000;ArrayQueueInteger arrayQueue new ArrayQueue();double timeArray testQueue(arrayQueue, opCount);System.out.println(ArrayQueue time : timeArray s);LoopQueueInteger loopQueue new LoopQueue();double timeQueue testQueue(loopQueue, opCount);System.out.println(LoopQueue time : timeQueue s);} 运行结果 在10^5数量级上我的这台电脑上所展现性能差异还是很明显的由于数组队列的出队操作是 O(n) 级别消耗了大量的时间。
http://www.yutouwan.com/news/477467/

相关文章:

  • 法律行业网站建设公司注册地址变更手续
  • 淘宝客网站名网站建设尺寸像素是多少
  • 海拉尔网站建设平台制作网站建网站
  • 做设计参考的网站微信网站开发 全屏
  • 做公司网站要什么资料重庆模板建站代理
  • 合肥网站制作联系方式公司网页链接
  • 城乡建设部网站房产查询张家口市建设局网站
  • 湖北省住房和城乡建设部网站wordpress侧边栏选项卡
  • 莱州网站建设效果自媒体代运营
  • 网站建设人员工资南宁网站建设制作
  • 做网站需要几个人分工嘉兴网站推广优化
  • wordpress网站静态化网站排名站长之家
  • 北京网站建设兴田德润官网多少网站建设与制作实现精准营销
  • 昆明网站建设一条龙合肥制作网页设计
  • 企业网站建设专业精准丨 鸣远科技vi设计公司 成都
  • 天津网站优化怎么样国内著名网站建设公司
  • 网站服务器被黑怎么办wordpress 登陆 插件下载
  • 电子商务网站开发与应用我来做煮官方网站
  • 天津做网站推广的网站移动端和桌面端是什么意思
  • 芯火信息做网站怎么样山东烟台最新消息今天
  • 手机网站不支持下载的视频怎么下载企业网站介绍
  • 网站设计 北京 010申请一个网站需要多少钱
  • php5 mysql网站开发基础与应用知乎的网站建设和网站运营
  • PHP与网站建设的课后笔记百度网页推广
  • 专门做漫画的网站搜狗网站收录提交入口
  • 网站代理登录域名crm软件排行榜
  • 做彩票网站模板wordpress宝塔安装
  • 建设企业网站的好处扬州建设工程信息网站
  • 莱芜百度网站建设为企业交流合作搭建平台
  • 商业网站设计与制作论文网站没有织梦后台