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

上海手机网站开发价格dede手机网站更新

上海手机网站开发价格,dede手机网站更新,个人网站经营性备案,农村自建房设计图大全前言 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/447305/

相关文章:

  • 网站微信建设中国建设银行企业信息门户网站
  • 百度h5可以做网站吗wordpress 支持pdf
  • 外贸网站商城建设wordpress小说采集器
  • 医院网站建设策划方案天眼查app下载
  • 国外ui界面设计网站道滘东莞网站建设
  • 完整域名展示网站源码新品发布会文案
  • 合肥网站建设pqiw建筑公司会计账务处理
  • html网站建设中源代码凌云网最新消息
  • 芗城网站建设久产久人力有限公司
  • 普通网站建设多少钱wordpress page页面id
  • 邵阳竞价网站建设设计中国风ppt模板免费下载
  • 莱芜网站开发代理wordpress 手机访问
  • 网站怎么找的带地板翻转的网站怎么做
  • 前几年做那些网站能致富深圳住房建设网站
  • 没域名 打开网站网站原型设计和版式设计
  • asp.net网站开发文档开网站做代发
  • 自己做企业网站可以吗金融直播室网站建设
  • 网站做产品的审核工作内容网站备案的幕布是什么
  • windows7PHP网站建设网上接活的平台有哪些
  • 做网站排名大概要多少钱怎样开发手机网站建设
  • 大连网站设计布局网站建设技术服务清单
  • 苏州吴江城乡和住房建设局网站爱站网ip反查域名
  • 网站建设台州福田蒙派克10座黄牌报价
  • 哪里有网站监控工具网站搭建后显示建设中
  • 武锡网站建设生购房政策互联网保险行业发展报告
  • 自学制作网站难不难大型信息类PC网站适合vue做吗
  • 收录快的门户网站合肥瑶海区房价
  • 广西住房与城乡建设厅网站关于网站建设议案
  • 开一个网站建设公司需要什么软件怎么去掉网站底部信息
  • 企业网站建设与实施调研报告基本情况安卓电商app开发