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

海东营销网站建设服务河北手机版建站系统哪个好

海东营销网站建设服务,河北手机版建站系统哪个好,python 采集 wordpress,公司自建网站备案前言 上周在面试时#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.yutouwan.com/news/467990/

相关文章:

  • 外贸营销型网站制作wordpress自定义文章类型输出数量
  • 网站备案为什么 没有批复文件东莞58同城网招聘
  • vs2008不能新建网站网络营销推广手段
  • 滨江区网站开发公司莱芜二中网站
  • 亦庄网站建设杭州企业网站制作哪个好
  • 备案号链接工信部网站乐陵外贸seo
  • 网站打不开被拦截怎么办网络公司推广
  • 怎么做网站的排名优化自建营销型企业网站
  • 西安网站网页设计个人如何做跨境电商?
  • 网站建设费用多少钱网站建设的公司上海
  • 网站建设和维护岗位的职责做网站需要什么技能
  • 赤峰北京网站建设jmr119色带
  • 给你一个网站怎么做个人信息管理网站建设
  • 申请手机网站宁乡的网站建设
  • 网站幻灯片js代码淄博便宜网站设
  • 网站seo推广的方法专业展馆展厅设计公司深圳
  • wordpress 更改数据库密码错误seo营销推广费用
  • 如何提高网站收录数无忧网站建设
  • 网站做行业认证好处广告联盟代理平台
  • 企业网站建设是什么实现的物质基础和技术支撑网站建设工作室怎么开
  • 建设公司网站大概需要多少钱济南百度推广电话
  • 云空间布置网站国外大型购物网站
  • 加强机构编制网站建设力度宣威网站
  • 上海什么做网站的公司比较好成都画册设计的公司
  • 设计用哪些网站有哪些功能弄个app要花多少钱
  • 阿里云怎么建设网站衡阳关键词优化首选
  • 兰州做网站的有哪几个学网站建设 去哪里
  • 免费外贸自建网站wordpress页面加载耗时代码
  • 城建道桥建设集团网站wordpress不同分类调用不同文章
  • dw制作网页模板百度网站推广优化工具