ural 1306 堆排序找中位数
来源:互联网 发布:python snmp 编辑:程序博客网 时间:2024/06/02 07:01
题目要求找到一个数组的中位数
要是直接排序然后找到中位数的话,肯定是超内存的
选择堆排序,用STL中的make_heap, pop_heap, push_heap
代码如下:
#include <iostream>#include <stdio.h>#include <vector>#include <algorithm>#include <map>using namespace std;int main() {int N, half, i;int temp, data[ 150001 ];while (scanf( "%d", &N ) != EOF) {half = N / 2 + 1;for ( i = 0; i < half; i++ )scanf( "%d", &data[ i ] );make_heap( data, data + half );while ( i++ < N ) {scanf( "%d", &temp );if ( temp < data[ 0 ] ) {pop_heap( data, data + half );data[ half - 1 ] = temp;push_heap( data, data + half );}}printf( "%.1f\n", N % 2 == 1 ? (float)data[ 0 ]: ( (float)data[ 0 ] + max( data[ 1 ], data[ 2 ] ) ) / 2 );}return 0;} /*73 6 7 2 1 5 443 6 4 5*/
- ural 1306 堆排序找中位数
- 最大堆和最小堆找中位数
- 用快速排序找中位数
- 1029 序列排序找中位数
- 找两个排序数组的中位数
- POJ 2388 (堆排序求中位数)
- 堆排序:动态数组求中位数
- 找中位数
- 找中位数
- URAL 1306-Sequence Median(堆)
- 海量数据找中位数
- Sicily 4224. 找中位数
- 海量数据找中位数
- 双数组找中位数
- 大数据量找中位数
- 大根堆 小根堆 找中位数
- 海量数据找中位数
- 无序数组找中位数
- 关于GridView的getView方法会多次重复调用的问题
- Android开发 之 view的几种布局方式及实践
- 【数组】15周项目三(1)。带姓名的成绩单 .
- JNI 数据类型转换
- 今天还是挺顺利的呢
- ural 1306 堆排序找中位数
- MFCC梅尔倒谱系数
- 序列中对应列的值相加
- Strategy策略模式
- 剑指offer48相关例题
- 第九章作业
- 逆向Android软件的步骤(自己增加补充了一些内容)
- 工作队列(workqueue) create_workqueue/schedule_work/queue_work
- 关于chrome设置cookie的问题