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

ps网站首页设计/b2b平台

ps网站首页设计,b2b平台,怎么做企业销售网站,什么样的网站适合优化什么是最大优先队列 一般队列是先进先出,栈是先进后出,最大优先队列是无论怎么添加的数据,出队列是都从大到小出队列 可以使用堆进行实现,准确的说是最大堆实现,最大堆的特点是父节点大于子节点,根节点最大…

什么是最大优先队列

一般队列是先进先出,栈是先进后出,最大优先队列是无论怎么添加的数据,出队列是都从大到小出队列
可以使用堆进行实现,准确的说是最大堆实现,最大堆的特点是父节点大于子节点,根节点最大。

java代码实现

/***数组实现堆的数据结构*/package mypackage;
//堆类
//T extends Comparable<T>,后续的数据才可进行比较
class heap<T extends Comparable<T>>{//    实现基础为数组,元素个数Nprivate T[] items;private int N;//    构造方法,注意capacity+1,因为我们第一个元素是从索引1开始的,0处的索引不装数据
//    因此虽然我们传入的容量为capacity,这个capacity表示的是堆的数量,capacity+1才是数组的大小public heap(int capacity) {this.items = (T[]) new Comparable[capacity+1];N = 0;}
//堆元素个数public int size(){return N;}//是否为空public boolean isEmpty(){return N==0;}//    判断数组元素的大小public boolean less(int i,int j){return items[i].compareTo(items[j])<0;}//    交换数组元素public void exchange(int i,int j){T temp=items[i];items[i]=items[j];items[j]=temp;}//    插入元素public void insert(T t){
//        先将元素个+1,然后将值放在数组的最后位置,然后使用上浮算法swim让堆的元素有序
//        最开始N=0,N++使得N=1,然后这个位置放插入的元素,以此类推,每次插入元素前都N++,再在新的位置N处插入元素N++;items[N]=t;swim(N);}//浮算法swim让堆的元素有序
//    k位置处的父节点位置为k/2,左子节点为2k,右子节点位置为2k+1
//    浮算法swim就是不断的循环比较,如果这个节点大于父节点,就交换public void swim(int k){while (k>1){if (less(k/2,k)){exchange(k/2,k);}else {break;}
//            每次k=k/2k=k/2;}}//    删除最大的元素并返回,其实就是删除根节点的元素
//    先交换第一个元素和最后一个元素,然后删除最后一个元素,这个就是最大的元素
//    因为此时顺序是乱的,然后采用下沉算法,使得堆有序public T delmax(){T max=items[1];exchange(1,N);items[N]=null;N--;sink(1);return max;}//    下沉算法,使得堆有序,这是比较麻烦的算法
//    思路就是,从某个节点开始,向下循环
//    如果有右节点,就比较左右节点的大小,选取较大的一个最为较大值,如果没有右节点,那么左节点作为较大值
//    交换当前结点和较大的节点,且让当前索引设置为较大值得索引,继续下沉循环public void sink(int k) {while (2*k<=N){int max;if (2*k+1<=N){if (less(2*k,2*k+1)){max=2*k+1;}else {max=2*k;}}else {max=2*k;}if (!less(k,max)){break;}exchange(k,max);k=max;}}
}//测试
public class MyJava {public static void main(String[] args) {heap<String> heap=new heap<>(10);heap.insert("A");heap.insert("E");heap.insert("F");heap.insert("B");heap.insert("G");heap.insert("C");heap.insert("D");//        添加元素后,堆元素个数System.out.println("元素个数:"+heap.size());//        循环弹出队列中最大的值System.out.println("依次弹出最大元素:");while (!heap.isEmpty()){System.out.print(heap.delmax()+",");}System.out.println();System.out.println("是否为空:"+heap.isEmpty());}
}

在这里插入图片描述
结果正确

http://www.lbrq.cn/news/1287631.html

相关文章:

  • css如何让网站首字放大/网络营销公司名字
  • 大学做机器人比赛的网站论坛/企业营销策划论文
  • 微网站 微信/东莞seo网站推广建设
  • 武汉有个网站叫什么/网络推广外包怎么接单
  • 新手怎么建立自己的网站/网站开发技术
  • 遵义交通建设网站/怎么开网店
  • 新闻视频网站开发/长春seo快速排名
  • 上饶网站建设/营销型网站和普通网站
  • 网站安全建设需求/今天刚刚的最新新闻
  • 男和男做那个视频网站/杭州seo技术
  • 西昌城乡规划与建设局网站/营销
  • 诱人888网站/那个推广平台好用
  • 华为公司网站建设目标/网站优化的方式有哪些
  • 网站素材模板旅游/搜索软件
  • 网站设计团队/微信小程序怎么开通
  • 外贸网站建站m/优化设计答案六年级
  • 眼镜东莞网站建设/旅游产品推广有哪些渠道
  • 官方网站、门户网站是什么意思?/好的竞价账户托管外包
  • 电子商务网站建设 价格/快速优化seo
  • 做快递单的网站会不会是骗人的/网络营销的主要内容包括
  • 襄阳做网站价格/全网网络营销推广
  • php动态网站开发案例答案第二章/管理方面的培训课程
  • 普洱住房和城乡建设委员会网站/武汉seo网站优化运营
  • 临沂网站建设培训学校/html网页制作
  • 吉林商城网站建设/广州网站优化软件
  • 免费做网站教程/怎么推广销售
  • 河南建网站/抖音怎么运营和引流
  • 通过企业画册宣传_网络网站建设_新闻媒体合作等方式_/福州网站建设策划
  • 响应式网站的排版/网站搜索优化官网
  • 网站代运营收费/官网建设
  • 2025年02月11日 Go生态洞察:Go 1.24 发布亮点全面剖析
  • C++中new和delete的多重面孔:operator new、new operator与placement new解析
  • 在线事务型的业务、实时分析类业务、离线处理类型的业务
  • DNS 服务正反向解析与 Web 集成实战:从配置到验证全流程
  • 深度学习(鱼书)day01--感知机
  • Linux(centos7)安装 docker + ollama+ deepseek-r1:7b + Open WebUI(内含一键安装脚本)