博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多路归并排序之败者树
阅读量:6159 次
发布时间:2019-06-21

本文共 1348 字,大约阅读时间需要 4 分钟。

#include
#include
#define M 4using namespace std;class LoserTree{private: // 调整K为2的整数次幂 int round(int k) { if(k&(k-1)!=0) { int i=0; for(i=31;i>=0;i--) { if(((1<
=1) { if(_data[_ls[t]]<_data[sData]) { int tmp=sData; sData=_ls[t]; _ls[t]=tmp; } t=t/2; } _ls[0]=sData; } const int _k; int _n; // 败者树应留下多少空间存放根节点 int *_data; // 存放数据 int *_ls; // 存放败者树的结构public: const int MINKEY; const int MAXKEY; void print(int *ls,int n) { cout<<"|||||||||||||||"<
=_n+1;i--) { ajust(i); print(_ls,_n+_k+1); } return _ls[0]; } int next(int index,int value) { _data[index]=value; ajust(index); return _ls[0]; } LoserTree(int k):_k(k),MINKEY(1<<31),MAXKEY(~(1<<31)) { _n=round(_k)-1; // 计算前面应当预留多少空间 _data=new int[_k+1]; _ls=new int [_n+_k+1]; _ls[_k]=MINKEY; } ~LoserTree() { delete []_data; delete []_ls; }};int main(){ int input[M],i; for(i=0;i

 

转载于:https://www.cnblogs.com/dyc0113/p/4600548.html

你可能感兴趣的文章
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
汉字转拼音 (转)
查看>>
会计基础_001
查看>>
小程序: 查看正在写的页面
查看>>
Jenkins持续集成环境部署
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
修改GRUB2背景图片
查看>>