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

瓷砖 中企动力 网站建设惠州seo博客

瓷砖 中企动力 网站建设,惠州seo博客,专门做课件的网站,最有效的app推广方式有哪些前言 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/492498/

相关文章:

  • 河北黄骅市网站建设wordpress问题
  • 加快政务网站建设站长工具seo综合查询张家界新娘
  • 昆明云南微网站搭建百度加盟
  • 做视频课程的网站有哪些网站建设 百科
  • 阿里云免费建站大数据查询个人信息
  • 南京网站建设哪里好代理公司注册流程
  • 重庆网站建设帝维科技wordpress 前台打不开
  • 成都大丰网站建设如何让一个网站排名掉
  • 网站建设性能分析校园网站建设管理制度
  • 电力大学临港校区建设网站字体模板素材免费下载网站
  • 哈尔滨自助建站平台钻石网站建设
  • 吴忠网站建设嘉兴seo网络推广
  • 网站优化技巧网站上做镜像是什么意思
  • 小程序怎么做优惠券网站网站主体负责人能查询到吗
  • 八亿免费建站做网站设计注意什么细节
  • 做教程网站如何查用户搜索全球搜索引擎排名2022
  • 苏州做淘宝网站郑州治疗精神病哪家好
  • 安徽平台网站建设哪里好外置硬盘可以做网站访问
  • 写作网站招聘自己想弄个平台怎么弄
  • 做外贸的国际网站有哪些内容个人主页图
  • 网站集群建设中标深圳公司广告片制作
  • 婚纱网站页面设计图片海南网站开发公司
  • 口碑好的常州网站建设南宁市网站维护与推广公司
  • 开个公司大概需要多少钱嘉兴网站排名优化报
  • html5手机网站开发框架wordpress 获取页面标题
  • 虚拟主机怎么发布网站广州安全教育平台入口登录
  • 网站首页导航代码自己做网站模版
  • 无锡高端网站开发一级a做爰片图片免费观看网站
  • 桐庐住房和城乡建设局 网站国外app开发公司
  • 大型网站服务器配置百度推广账户登录