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

百度网站推广网络苏州网站开发服务

百度网站推广网络,苏州网站开发服务,电商设备网站怎么做,富阳网站建设 优帮云前言 TopK问题:从n个数中,找出最大(或最小)的前k个数。 在我们生活中,经常会遇到TopK问题 比如外卖的必吃榜;成单的前K名;各种数据的最值筛选 问题分析 显然想开出40G的空间是不现实的&#…

前言

TopK问题:从n个数中,找出最大(或最小)的前k个数。

在我们生活中,经常会遇到TopK问题

比如外卖的必吃榜;成单的前K名;各种数据的最值筛选

问题分析

显然想开出40G的空间是不现实的,那应该怎么办呢?

答案是:建小堆

代码实现

#include<stdio.h>
#include<stdlib.h>
#include<time.h>// 造数据
void CreateNDate()
{// 造数据int n = 10000;srand(time(0));const char* file = "data.txt";FILE* fin = fopen(file, "w");if (fin == NULL){perror("fopen error");return;}for (int i = 0; i < n; ++i){int x = (rand() + i) % 1000000;fprintf(fin, "%d\n", x);}fclose(fin);
}
void Swap(int* px, int* py)
{int tmp = *px;*px = *py;*py = tmp;
}
//向下调整算法
void AdjustDown(int* a, int n, int parent)
{int child = parent * 2 + 1;while (child < n){if (child + 1 < n && a[child + 1] < a[child]){child++;}if (a[child] < a[parent]){Swap(&a[child], &a[parent]);parent = child;child = parent * 2 + 1;}else{break;}}
}
void PrintTopK(int k)
{FILE* fout = fopen("data.txt", "r");if (fout == NULL){perror("fopen mail");return;}int* minheap = (int*)malloc(sizeof(int) * k);if (minheap == NULL){perror("minheap mail");return;}for (int i = 0; i < k; i++){fscanf_s(fout, "%d", &minheap[i]);}//建小堆for (int i = (k - 1 - 1) / 2; i >= 0; i--){AdjustDown(minheap, k, i);}int x = 0;int val = 0;while (val = fscanf_s(fout, "%d", &x) != EOF){if (x > minheap[0]){minheap[0] = x;AdjustDown(minheap, k, 0);}}for (int i = 0; i < k; i++){printf("%d ", minheap[i]);}fclose(fout);
}
int main()
{//CreateNDate();printf("请输入k:>");int k = 0;scanf_s("%d", &k);PrintTopK(k);return 0;
}

运行结果:

结果验证

那我们怎么确定输出在屏幕上的数据就是最大的数据呢?

我们可以在已经创建的数据上面修改,如图后面111的是在原有数据上手动添加的

重新运行,结果与预期一致

http://www.yayakq.cn/news/704116/

相关文章:

  • 建免费的网站吗浙江平安建设网站
  • 网站服务器的作用如何在网站找做贸易的客户
  • 建模苏州seo关键词优化价格
  • 功能分类模块类型网站网站制作经费预算
  • 免费在线观看电影电视剧网站做响应网站的素材网站有哪些
  • 淘宝联盟推广网站建设网站的营销
  • 网站入口网络营销基本含义
  • 企业网站建设作品分析黑龙江生产建设兵团网站
  • 北京南昌企业网站制作淄博个人承接网站制作
  • vue企业门户网站模板住房建设和城乡管理局官网
  • wordpress代币插件电商网站seo优化目标分解
  • 有没有专业收费做网站优化的企业网站开发有哪些
  • 衡水网站建设公司哪家比较好成都有什么好玩的地方景点
  • dw模板制作网站的缺点手机网站特效
  • 网站建设方案的征求意见wordpress状态修改
  • 电子商务网站开发的视频wordpress 建资源县好不好
  • 做短视频网站平面设计师求职网
  • 福州智能建站湖南网站建设报价
  • 自己做免流网站中企动力科技股份有限公司大连分公司
  • 胡芦娃app软件下载网站如何设置友情链接
  • 凡科网站怎么做授权查询做旅游网站的目标
  • 姜堰网站建设建立了网站后如何发贴
  • 在线看网站建设怎么做快三一模一样的网站
  • 快速建站公司电话高新网站建设多少钱
  • 域名备案成功如何做网站网站建设安全需求
  • 做装修网站公司哪里有零基础网站建设教学培训
  • 网站设计与规划论文怎么在百度上做推广
  • 企业网站建设用语平面广告设计是什么
  • 宁波市北仑区建设局网站网站内容建设要求 age06
  • 营销型企业网站一般具有哪些功能扬中企业网站优化哪家好