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

安康做企业网站的邢台手机网站制作

安康做企业网站的,邢台手机网站制作,昆山网站开发公司,wordpress 非法词语文章目录 常用接口介绍PriorityQueue的性质插入/删除/获取优先级最高的元素 top-k问题#xff1a;最大或最小的前k个数堆排序总结 常用接口介绍 PriorityQueue的性质 PriorityQueue默认都是小根堆 public class Test {public static void main(String[] args) {PriorityQue… 文章目录 常用接口介绍PriorityQueue的性质插入/删除/获取优先级最高的元素 top-k问题最大或最小的前k个数堆排序总结 常用接口介绍 PriorityQueue的性质 PriorityQueue默认都是小根堆 public class Test {public static void main(String[] args) {PriorityQueueInteger priorityQueue new PriorityQueue();priorityQueue.offer(10);priorityQueue.offer(5);priorityQueue.offer(6);System.out.println(priorityQueue.poll());//5System.out.println(priorityQueue.poll());//6}如果要大堆需要提供比较器 方法直接实现Comparator接口然后重写该接口中的compare方法即可 class Imp implements ComparatorInteger {Overridepublic int compare(Integer o1, Integer o2) {return o2.compareTo(o1);//如果是o1 o2就是小根堆//02 01就是大根堆} } public class Test {public static void main(String[] args) {Imp imp new Imp();//PriorityQueueInteger priorityQueue new PriorityQueue(imp);priorityQueue.offer(10);priorityQueue.offer(5);priorityQueue.offer(6);System.out.println(priorityQueue.poll());//10System.out.println(priorityQueue.poll());//6} }关于PriorityQueue的使用要注意: 使用时必须导入PriorityQueue所在的包即:import java.util.PriorityQueue;PriorityQueue中放置的元素必须要能够比较大小不能插入无法比较大小的对象否则会抛出ClassCastException异常不能插入null对象否则会抛出NuliPointerException没有容量限制可以插入任意多个元素其内部可以自动扩容插入和删除元素的时间复杂度为O(log2N)PriorityQueue底层使用了堆数据结构PriorityQueue默认情况下是小堆—即每次获取到的元素都是最小的元素 插入/删除/获取优先级最高的元素 函数名 功能介绍 boolean offer(E e) 插入元素e插入成功返回true如果e对象为空抛出NullPointerException异常时间复杂度 注意空间不够时候会进行扩容E peek() 获取优先级最高的元素如果优先级队列为空返回nullE poll() 移除优先级最高的元素并返回如果优先级队列为空返回nullint size() 获取有效元素的个数voidclear() 清空boolean isEmpty() 检测优先级队列是否为空空返回true top-k问题最大或最小的前k个数 //把priorityQueue改成大根堆 class Imp implements ComparatorInteger {Overridepublic int compare(Integer o1, Integer o2) {return o2.compareTo(o1);//如果是o1o2就是小根堆//02 01就是大根堆} } public class Test {public static int[] smallestK(int[] array, int k) {int [] ret new int[k];if(arr null || k 0){return ret;}PriorityQueueInteger priorityQueue new PriorityQueue(new Imp());//1.建立大小为k的大根堆O(k*logk)for (int i 0;i k;i){priorityQueue.offer(array[i]);}//2.遍历剩下的元素for (int i k;i array.length;i){int top priorityQueue.peek();if (array[i] top){priorityQueue.poll();priorityQueue.offer(array[i]);}}//把最小值放进ret数组//k*logNfor (int i 0; i k; i) {ret[i] priorityQueue.poll();}System.out.println(Arrays.toString(ret));return ret;}public static void main(String[] args) {int[] array {1,3,15,7,19,10};int[] ret smallestK(array,3);System.out.println(Arrays.toString(ret));} }堆排序 方法 0下标的数和end的那个数换完之后调用向下调整的方法 判断0下标和它的两个节点哪个大大的数就换到0下标然后end-- end就来到了倒数第二个的数再让0下标的数和end交换换完之后调用向下调整的方法把最大的数移到0下标就这样循环下去二叉树就会按照从小到大的顺序排 //堆排序 public class TestHeap {public void heapSort(){int end usedSize-1;while(end 0){//将0下标和end交换swap(0,end);//向下调整siftDown(0,end);end--;}}总结 关于PriorityQueue的知识就介绍到这里
http://www.zqtcl.cn/news/49606/

相关文章:

  • 百度推广是否做网站wordpress怎么放图片不显示
  • 做推广都有什么网站网站动态海报效果怎么做的
  • 杭州电商网站建设品牌网络推广公司
  • 无锡手机网站制作费用安徽建站网站
  • 福州网站开发si7.cc传奇游戏在线玩网页版
  • 广州网站维护公司常见的网络服务有哪些
  • 中山低价网站建设网页设计培训班学校排名
  • 建外文网站湖南省建设信息网站查询
  • 动态倒计时网站模板怎么做直播室的网站
  • 软件开发建设网站网站建设百度推广
  • 网站运行速度慢html建站
  • 网站开发的重要性深圳平面设计公司排名榜
  • 织梦网站怎么做索引地图晋江网站建设费用
  • 网站开发交互原型标注图网站建设演示ppt模板下载
  • 快餐网站模板网站建设会计分录怎么写
  • 做新媒体的小说网站wordpress vip购买页面
  • 两当网站建设企业网站的页面特点
  • 网站英文域名怎么修改WordPress文件結構
  • 如何推广自己网站的关键词asp.net网站开发 pdf
  • python做网站好吗做网站销售药品
  • 网站建设行规中国建设银行网站成都第七支行
  • 网店网站设计论文ps手机网站页面设计
  • 网站建设ppt下载沈阳网上房屋备案查询
  • 哪里有网站制作技术app设计开发
  • 濮阳做网站 汉狮网络wordpress会员vip
  • 网站注册费用兼职做问卷调查的网站好
  • 中山网站建设收费标准铝木门窗网站建设
  • 网站开发简历 自我评价进入江苏省住房和城乡建设厅网站首页
  • 临沂网站建设服务商厦门网站建设公司首选乐振
  • 太原房产网站建设天津市规划局官方网站建设项目