北大ACM2418 - Hardwood Species(二叉树排序)

Description

硬木是一种很多叶子的植物,能够生产很多水果和坚果,一般情况下,冬天时候,它将进入休眠。

美国温暖的气候催生了几百种硬木物种的森林 --这些树都有一定相似的生物特性。虽然橡木、枫树和樱桃树都是硬木树,但是他们是不同的物种。总体上,在美国,所有的硬木物种占到了40%

另一方面,软木和针叶树有针叶。在美国可以找到的软木包括cedar, fir, hemlock, pine, redwood, spruce and cypress.在一个家,软木首先用于框架结构,很少用于装潢。

利用卫星照相技术,自然资源部编辑好一个所有树的清单。你要计算出每个物种占所有树的百分比。

Input

程序的输入包括卫星拍下来的每个树的列表,一个树占一行。每个物种名字不会超过30个字符。不会超过10000个物种,也不会超过1000000棵树

Output

按照字母顺序将每个物种的名字列出,后面跟着所占百分比,含4为有效数字。

 

1.1.1           算法分析

思路

由于处理数据量很大,可能达到1000000条,所以,基本排除链表等简单数据结构,选择二叉树。

 

数据结构

二叉查找树

 

代码

2418.bs.tree.gykimo.cpp

下载:http://download.csdn.net/detail/gykimo/4845578 

 

结果

844K 1313MS

总体而言,这个问题很简单,是标准的二叉树排序。

1.1.2           第三方算法分析

算法一

2418.bs.tree.other.cpp是用类来实现的二叉树。思路相差不大。

716K 1266MS

 

1.1.3           总结

当输入数据量很大时,用scanf代替cin

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值