[Question]

已知一个几乎有序的数组,几乎有序是指如果把数组排好序的话,每个元素移动的距离可以不超过K,并且K相对于数组来说比较小。

[Idea]

使用优先级队列结构 PriorityQueue length=K+1
首先将数组前"K+1"个数add进 PriorityQueue
其次循环 add 数组下一个数 并 poll up 数组第一个数

[Source code]

import java.util.PriorityQueue;public class code04_SortArrayDistanceLessK {public static void sortArrayDistanceLessK(int[] array, int k) {if (array == null || array.length < 2) {return;}PriorityQueue<Integer> heap = new PriorityQueue<>();int index = 0;for (; index < Math.min(array.length - 1, k); index++) {heap.add(array[index]);}int i = 0;for (; index < array.length; i++, index++) {heap.add(array[i]);array[i] = heap.poll();}while (!heap.isEmpty()) {array[i++] = heap.poll();}}
}

SortArrayDistanceLessK相关推荐

  1. 算法笔记-堆相关、堆的定义、大小根堆、算法程序实现、堆的算法题、C#写法

    内容概述 1,堆结构就是用数组实现的完全二叉树结构 2,完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 3,完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 4,堆结构的heaplnsert与h ...

最新文章

  1. Sql Server系列:数据库操作
  2. 装机必备工具(普通家庭版)
  3. Xcode10 闪退问题
  4. 安全研究剖析:******方式演示
  5. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展...
  6. van-cell 取消点击_消息传来!转告父母:2021年起,取消60岁以上老年卡?
  7. 十二生肖配对表查询_天蝎座:分手后最容易复合的星座配对,一生分不开,最终重新走到一起...
  8. 《 Ray Tracing from the Ground Up》官方代码的潜在的纹理映射问题
  9. [导入]表单确认按钮——Javascript函数
  10. 作为一名管理者,如何做好上传下达工作呢?
  11. kali之iwconfig
  12. npm publish常见问题
  13. 显示前半内容后半内容用省略号_省略号前后的标点用法
  14. java 23种设计模式 04 单例模式
  15. 投稿指南【NO.7】目标检测论文写作模板(初稿)
  16. H5移动端网页自定义扫码
  17. 耳机接口规则_耳机接口种类与标准
  18. 计算机专业毕业自我鉴定800字,计算机专业毕业自我鉴定范文
  19. 【入行必修】 揭开 AI人工智能工程师 三大岗位 工作内容的 神秘面纱!
  20. 一个前端程序猿的Sublime Text3的自我修养

热门文章

  1. 【LaTeX排版】LaTeX论文模版
  2. 二叉树——中序遍历(递归/非递归)
  3. 1.4 裸机实验GPIO与LED DNW驱动无法安装问题解决
  4. 相机光学(七)——光源
  5. EditText的hint居中,设置EditText的hint位置
  6. 消费心理学(04):价格锚点
  7. FreeBbs论坛社区APP源码
  8. 文本编辑器的制作(C#)
  9. Linux磁盘挂载问题 ***is apparently in use by the system; will not make a filesystem here!
  10. 父亲节,来认识这些计算机领域的大佬们