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

网站几个关键词网站备案为什么要关闭

网站几个关键词,网站备案为什么要关闭,查看网站空间,网上购物商城介绍前言 上周在面试时#xff0c;偶然一个算法用到了优先队列思想。我只懂效果不懂实现#xff0c;当时感觉和堆排序的思想差不多。今天深入源码#xff0c;自己又实现一遍加深印象。 源码有什么 具有Queue和Collection集合和Queue队列的性质可以保证每次取出的元素都是最值…前言 上周在面试时偶然一个算法用到了优先队列思想。我只懂效果不懂实现当时感觉和堆排序的思想差不多。今天深入源码自己又实现一遍加深印象。 源码有什么 具有Queue和Collection集合和Queue队列的性质可以保证每次取出的元素都是最值默认是最小可以自己设置内部采用推排序思想上浮siftUp和下沉siftDown存储采用可变数组和ArrayList一样默认大小是11刚开始每次*22后面每次加一半sizesize2 如何实现一个优先队列 队列最基本的offerpeekpoll集合最基本的isEmptytoStringsize供内部使用的siftUpsiftDowngrow 代码实现 个人有写算法加注释的习惯看不懂私聊 import java.util.* import kotlin.math.maxfun main() {val queue MyPriorityQueue().apply {repeat(10) {offer(Random().nextInt(100))}}while (queue.isNotEmpty()) {println(queue.poll())} }class MyPriorityQueue {// 保存元素方便实现泛型默认大小是11private var array Array(11) { 0 }// 当前数目private var size 0// 增fun offer(value: Int) {if (size array.size) {grow(size 1)}array[size] valuesiftUp(size - 1, value)}// 看队头fun peek(): Int {return if (size 0) -1 else array[0]}// 取对头fun poll(): Int {if (size 0) {return -1}val result array[0]array[0] array[size - 1]size--siftDown(0, array[0])return result}// 没有size方法fun size() size// 没有isEmpty方法fun isEmpty() size 0fun isNotEmpty() size 0// 上浮默认最小在上面private fun siftUp(index: Int, value: Int) {// 在上面选个大的和当前交换没有退出var i indexwhile (i 0) {val parent (i - 1) / 2if (array[parent] value) {break}array[i] array[parent]i parent}array[i] value}// 下沉默认最大在下面private fun siftDown(index: Int, value: Int) {// 选出子节点最小的一个没有则退出var i index// 当至少存在左子节点时while (i * 2 1 size) {// 找出最小的子节点下标val minChild if (i * 2 2 size || array[i * 2 1] array[i * 2 2]) i * 2 1 else i * 2 2// 如果最小的还是比父节点大退出if (array[minChild] value) {break}array[i] array[minChild]i minChild}array[i] value}// 扩容机制小于64*22大于2private fun grow(minCapacity: Int) {var newCapacity array.size if (array.size 64) array.size 2 else array.size / 2// 在一次添加大量元素才可能用到newCapacity max(newCapacity, minCapacity)array Arrays.copyOf(array, newCapacity)}// 重写toString方法override fun toString() StringBuilder().apply {append([)for (i in 0 until size) {append(if (i 0) array[i] else ${array[i]})}append(])}.toString() }
http://www.zqtcl.cn/news/987774/

相关文章:

  • 北京网页设计与网站建设最专业的手机网站建设
  • 做一个网站广州网站备案拍照
  • 做平面图片的网站wordpress批量添加连接
  • 做ppt哪些网站的图片质量高做电商网站需要多少时间
  • 个人网站模板源码wordpress流动公告
  • html5 手机 网站盘锦建设工程信息网站
  • 高端企业网站定制公司wordpress喜欢_赏_分享
  • 网站开发推广方案策划书开发公司移交给物业资料说明
  • 做响应式网站的菜单中国造价网官网
  • 爱心捐赠网站怎么做中国机械网官网
  • 好的ftp网站微信小程序开发基础
  • 西安 网站 公司wordpress+帖子置顶
  • 广州开发网站服务上海千途网站建设
  • 网站建设功能分为几种百度搜索数据
  • 电影网站模板html微信开发者代码管理
  • 小程序ui界面设计手机优化大师官网
  • 佳木斯市建设局网站网络游戏名
  • 建筑钢结构网站汉阳网站建设哪家便宜
  • 营销型网站建设评价临湘网站建设
  • 做网站的价格参考巴中建网站的公司
  • 张家口建设网站网络技术工程师
  • 大型网站后台登录地址一般是如何设置的哪里网站用vue.js做的
  • 网页设计规范图标设计百度seo优化多少钱
  • 网站打开速度概念建筑网站知乎
  • 网站的flash怎么做的杭州市城乡建设网官网
  • 宿迁网站建设排名wordpress多站点可视化
  • 苏州好的做网站的公司哪家好前端如何做响应式网站
  • 广州网站建设招标推广方式有哪些渠道
  • 郑州做网站狼牙东莞建设造价信息网站
  • 网站制作代理加盟国内seo服务商