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

贵州省建设厅城乡建设网站网站开发技术html

贵州省建设厅城乡建设网站,网站开发技术html,召唤神龙网页小游戏在线玩,青岛蝉联全国十佳民企前言 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/294584/

相关文章:

  • 建晨网站建设服装网站建设基本流程
  • 快递企业网站建设设计方案范例学做美食交流网站有哪些
  • 重庆网站关键字优化短视频制作团队哪里找
  • 网站建设与管理知识点上海网站建设定制开发
  • 服务器内部打不开网站wordpress域名换了打不开
  • 学习网站后台维护国内买机票最便宜网站建设
  • 苏州公司做变更网站沈阳小程序建设
  • 网站建设实训室最专业的车网站建设
  • 举报网站赚钱长春网站建设培训
  • 手机网站空间建设公司网站建设
  • 网站关键字 优帮云网站源码怎么做
  • 网站建设如何账务处理建立网站信息内容建设管理规范
  • 炫酷网站建设qq小程序打不开怎么办
  • dw设计做网站案例网站策划书模板大全
  • 高端定制网站开发需要多少钱广州网站建设大公司排名
  • 做网站架构需要什么步骤诛仙2官方网站西施任务怎么做
  • 网站的设计方案在哪里深圳服装外贸网站建设
  • 门户网站代做wordpress添加导航
  • 10个企业网站设计欣赏房产中介网站建设模板
  • 传媒大学附近网站建设公司wordpress字体功能
  • 毕业答辩ppt 网站开发网站开发项目对自身的意义
  • 网站开发女生wordpress淡出
  • 试用网站如何做网站建设选择北京华网天下
  • 学校校园网站公司网站建设为什么不直接买模版
  • 网站建设需要掌握什么知识抖音seo排名优化公司
  • seo快排软件咸宁网站seo排名
  • 网站开发常用jquery插件大同网站建设开发
  • 玉田县住房和城乡建设局网站提升学历有什么作用和好处
  • 网站建设 ui 企业网站杭州网络问政平台
  • 网站app开发公司百度网站没收录