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

金华网站建设哪里好wordpress 按钮

金华网站建设哪里好,wordpress 按钮,广州网站搭建快速提升网站排名,美容美发网站模板文章目录一、TopK问题是什么二、解决方法三、时间复杂度一、TopK问题是什么 TopK问题就是从1000个数中找出前K个最大的数或者最小的数这样的类似问题。 不过并不要求这k个数字必须是有序的#xff0c;如果题目有要求#xff0c;则进行堆排序即可。 还有比如求出全国玩韩信… 文章目录一、TopK问题是什么二、解决方法三、时间复杂度一、TopK问题是什么 TopK问题就是从1000个数中找出前K个最大的数或者最小的数这样的类似问题。 不过并不要求这k个数字必须是有序的如果题目有要求则进行堆排序即可。 还有比如求出全国玩韩信前十名等等排出班级前十名也是TopK问题。 二、解决方法 采用堆的方式可以较快解决。 思路如果需要排前k个最大的数则需要建一个小堆 如果需要排前k个最小的数则需要建一个大堆 假设现在需要排序前k个最大的数则需要建立一个小堆。 建立小堆是拿n个数的前k个数来建立的。 不能把n个数全部建立成一个小堆这样效率会大打折扣因为通过向下调整建堆的时间复杂度是O(N)假如要从10亿个数字中排前50个最大的那么建立一个10亿个数大小的堆开销还是比较大的。 建立了一个小堆后此时堆顶元素是最小的 从第k1个数开始只要第K1个数大于堆顶元素就将该数字于堆顶元素进行交换然后再向下调整。 这样做的结果是只要我比堆顶元素大我就进堆如果我在堆中是比较大的我就会“下沉”到堆底因为这是一个小堆。 这样遍历多次后原来堆中的元素会被换成新的一批更大一点的元素。 当我们遍历完n个数后留在堆中的一定是前k个最大的数。 代码如下 随机生成10个1000以内的数字求这10个数字的最大的3个 void Find_TopK(int* a, int n ,int k) {assert(a!NULL);assert(k 0);int* topk (int*)malloc(sizeof(int) * k);assert(topk);for (int i 0; i k; i){topk[i] a[i];}//1.先建堆,向下调整建堆现在是建小堆那就找最大的前k个//把前k个抓起来建立一个k大小的堆for (int i (k - 1 - 1) / 2; i 0; i--){AdjustDown(topk, k, i);}//2.然后从第k个开始往堆里面插入int j k;while (j n){if (a[j] topk[0]){topk[0] a[j];AdjustDown(topk, k, 0);}j;}printf(这10个数中最大的3个数为\n);for (int i 0; i k; i){printf(%d , topk[i]);}free(topk);topk NULL; }int main() {srand(time(0));int a[100] { 0 };printf(随机生成的10个1000以内的数为\n);for (int i 0; i 10; i){a[i] rand() % 1000;printf(%d , a[i]);}printf(\n);int k 3;int n sizeof(a) / sizeof(a[0]);Find_TopK(a,n,k);return 0; } 三、时间复杂度 建堆的时间复杂度:O(K) 遍历的时间复杂度:O(N-K) 每次遍历调整的时间复杂度:O(logK) 总的时间复杂度O(K(N-K)logK) ≈ O(NlogK)
http://www.hkea.cn/news/14335645/

相关文章:

  • 南宫建设局网站首页巴中+网站建设
  • 设计师常用的网站wordpress 修改固定链接
  • 网站接入服务商查询公司如何建设网站首页
  • 做解析会员电影的网站包装设计分析
  • 精美网站wordpress侧栏弹窗登录
  • 网站建设能赚很多钱毕设网站和系统的区别
  • 成都谁做捕鱼网站网易黄页
  • 微官网和移动网站区别吗泉州网站制作哪个好微
  • 企业网站开发需求详细文档石家庄教育平台网站建设
  • 美团网站建设百度推广 网站要备案吗
  • 做爰视频免费安全的网站英文建设网站
  • 中国网站排行榜三维立体图制作软件app
  • 南宁住房和城乡建设局网站机械加工网名
  • 阿里云建设网站步骤用dreamwever做网站
  • 纺织面料做哪个网站好wordpress如何重装
  • 长沙建设品牌网站qq上传空间wordpress
  • 公司网站赏析wordpress插件恢复图片
  • 厦门百度整站优化服务贵阳制作网站的公司
  • 如何做网站网站iapp源码
  • 国外采购网站有哪些网络推广的手段
  • 建立中英文网站手机wordpress主题
  • jsp 响应式网站模板下载工业设计创意产品
  • 随州什么公司做网站dede网站地图标签
  • 重庆市建设工程信息网官方网站做网站公司yuanmus
  • 黄页网站软件下载免费app网页设计培训的课程
  • 360站长平台全国城市感染率排名
  • 龙岗网站建设价格综合门户网站有哪些
  • 网络设计网站多少钱专门做网站推广的平台
  • 怎样建自己的网站免费的网站的优点
  • 自己做网站的网址京东网上商城投诉电话