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

国外设计网站大全湖南靠谱的关键词优化

国外设计网站大全,湖南靠谱的关键词优化,做网站去哪里,阿里服务器租用价格表为了找到数组中第K个最大的元素,我们可以使用堆排序的方法。堆排序的核心是构建一个最大堆,并通过多次交换堆顶元素来找到前K个最大的元素。具体步骤如下: 方法思路 构建最大堆:将输入数组转换为最大堆,使得每个父节…

为了找到数组中第K个最大的元素,我们可以使用堆排序的方法。堆排序的核心是构建一个最大堆,并通过多次交换堆顶元素来找到前K个最大的元素。具体步骤如下:

方法思路

构建最大堆:将输入数组转换为最大堆,使得每个父节点的值大于其子节点的值。
交换并调整堆:执行K次交换操作,每次将堆顶元素(当前最大值)与当前堆的末尾元素交换,然后调整剩下的元素以维持最大堆的性质。
获取结果:经过K次交换后,第K个最大的元素会位于数组的倒数第K个位置。

解决代码

class Solution {class Heap{int size;int[] nums;public Heap(int[] nums){this.nums = nums;this.size = nums.length;heapify();}public void heapify(){//弗洛伊德堆化算法int nonLeafIndex = size/2 - 1;for(int i = nonLeafIndex; i>=0; i--){down(i);}}public void down(int parent){int left = 2*parent+1,right = left+1,max=parent;//比较左子结点和右子结点if(left<size&&nums[left]>nums[max]){max = left;}if(right < size&&nums[right] > nums[max]){max = right;}if(max!=parent){swap(nums,max,parent);down(max);}}public int poll(){int polled = nums[0];swap(nums, 0, size-1);size--;down(0); //调整堆结构return polled;}public void swap(int[] nums, int i, int j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}}public int findKthLargest(int[] nums, int k) {Heap heap = new Heap(nums);//k=2while(k-- > 1){heap.poll();}return heap.poll();}
}

该方法的时间复杂度为O(n + k log n),其中构建堆的时间为O(n),每次调整堆的时间为O(log n),共进行k次调整。空间复杂度为O(1),因为所有操作都在原数组上进行。

http://www.dtcms.com/wzjs/274604.html

相关文章:

  • 网站建设模板uc浏览器关键词排名优化
  • 网站图片优化工具自动优化app
  • pageadmin授权和免费的区别关键词优化推广
  • 网站建设突出特色百度快照推广
  • 做国外的网站nba今日数据
  • 西安市政府门户网站互联网的推广
  • 做网站webform mvc商洛网站建设
  • 二手书交易网站开发与设计百度下载
  • 江苏省建设厅网站首页网络优化培训骗局
  • 九亭做网站公司拼多多关键词排名查询软件
  • WordPress文化衫六年级下册数学优化设计答案
  • 做网站 怎么提升浏览量重庆seo排名电话
  • 网站排名怎样做有效软服业营收破334亿
  • 景区门户网站建设的必要性企业营销策划书如何编写
  • 佛山市品牌网站建设价格爱站查询工具
  • 网站 数据库 模板免费的关键词优化工具
  • 网站修改关键字视频广告
  • 网站建设的需求怎么写网络营销策划方案
  • 访问不了服务器网站吗代运营靠谱吗
  • 网站建设公司有哪些原长沙营销型网站建设
  • 可以做免费广告的网站青岛网站建设策划
  • phpwind网站seo流量排名软件
  • 淄博哪有做网站的谷歌怎么推广自己的网站
  • 建网站数据库备案查询站长之家
  • 网站设计软件培训热狗seo外包
  • 广州网站设计成功柚米澎湃新闻
  • 做网站在后台如何添加链接提升seo排名平台
  • 网上开店营业执照怎么办理嘉兴seo外包公司
  • wordpress 网站生成app安卓优化大师下载安装
  • 做服装微商城网站app推广引流