处理流式数据中MAX N问题
来源:互联网 发布:杰洛特的母亲 知乎 编辑:程序博客网 时间:2024/05/16 03:30
题目:要求找出数据流中最大的5个数
思路:构建一个5个元素的最小堆,循环处理,每次和堆顶元素比较即可
#include <stdio.h>#include <stdlib.h>#include <assert.h>inline void swap(int arr[], int i, int j){ int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;}void min_heap(int arr[], int size, int i){ int l = 2*i+1; int r = l + 1; int idx = i; if(l < size && arr[l] < arr[i]) idx = l; if(r < size && arr[r] < arr[idx]) idx = r; if(idx != i) { swap(arr, i, idx); min_heap(arr, size, idx); }}int main(int argc, char* argv[]){ int in; const int max_s = 5; int arr[max_s]; memset(arr, 0, sizeof(arr)); while(scanf("%d\n", &in) == 1) //初始化最小堆 { if(arr[0] < in) { arr[0] = in; min_heap(arr, max_s, 0); //更新堆 } } for(int i = 0; i < max_s; i++) //输出结果 printf("%d\n", arr[i]); return 0;}
阅读全文
0 0
- 处理流式数据中MAX N问题
- 3n+1问题大数据如何处理?
- python文本处理中\r回车\n换行的问题
- jsp中处理数据的问题
- 关于骨骼动画max数据导出到dx中一些问题总结
- MAX SDK中数据块的使用方法
- Linux中修改openfile大小(max open files/ulimit -n )
- hibernate中使用max返回值问题
- 如何处理max透明树叶贴图渲染白边问题
- 使用用VB处理MYSQL数据库中二进制数据问题
- 处理MySQL中0时时间数据问题的办法
- MapReduce程序处理hdfs中数据乱码问题
- mongodb中处理插入数据去重问题
- decimal和double处理数据中遇到的问题
- 处理数据并发问题
- 海量数据问题处理
- 海量数据问题处理
- 处理json数据问题
- EditText中的TextWatcher监听
- Java的“跨平台”特性
- 一、项目结构
- 设计模式系列之建造者模式
- Mysql 的常用语法
- 处理流式数据中MAX N问题
- 计算几何ACM——一些代码整理
- python猜数字游戏
- 史上最简单的 MySQL 教程(二十四)「数据的高级操作 之 查询(中)」
- Hive的客户端操作
- 第九章 PX4-pixhawk-姿态估计解析
- java 流程控制
- Python任务调度模块 – APScheduler
- 由"=="所引起的“您提交的程序没有通过所有的测试用例”