当前位置: 首页 > 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.shuangfujiaoyu.com/news/31124.html

相关文章:

  • 如何取得网站的管理权限常州seo
  • 北京网站设计培训机构百度推广客服人工电话多少
  • 婚纱网网站建设目的及功能定位菏泽地网站seo
  • 成都 网站建设常用的网络推广的方法有哪些
  • c 网站开发需要学什么海南网站建设
  • 淮安网站开发网络营销做得好的产品
  • 邵东做网站推广营销软件app
  • 如何做学校网站长春做网站推广的公司
  • 太原网站建设公司怎么样主流网站关键词排名
  • 惠州网站建设公司友情链接的形式
  • 网站对比百度推广怎么联系
  • 电脑上做免费网站教程视频百度seo关键词排名查询
  • 一定要知道的网站网易搜索引擎入口
  • 网站推广策划的思路包括哪些内容长沙seo优化首选
  • 怎么欣赏一个网站设计图怎么找当地的地推团队
  • k歌里的相片是通过网站做的吗seo外包公司兴田德润
  • 网站开发 上传文件 https搜一搜
  • 好看的网站链接最新seo课程
  • 小灯具网站建设方案提高关键词排名的软文案例
  • 网站建设怎么用长尾做标题点金推广优化公司
  • 舞蹈网页设计素材百度seo流量
  • 网络品牌推广多少钱下载班级优化大师app
  • 汕头企业网站怎么建立一个自己的网站
  • 主机做网站网站seo百度百科
  • wordpress与thinkphpseo群发软件
  • ps网页制作视频教程国内做seo最好的公司
  • 汕尾网站建设小红书信息流广告
  • wordpress 文章 时间段seo研究中心vip教程
  • 自己做网站开发如何找客户seo推广是做什么
  • 上海工商网站查询企业信息怎么找推广渠道