设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数
2013-07-16 12:51
639 查看
【设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数】
设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数。并估算时间复杂度。
解法:
使用大根堆和小根堆存储。 使用大根堆存储较小的一半数字,使用小根堆存储较大的一半数字。 插入数字时,在O(logn)时间内将该数字插入到对应的堆当中。当两边个数差大于1时,从多的一边取头上的数加入另一边,以维持平衡。 获取中数时,在O(1)时间内找到中数。
设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数。并估算时间复杂度。
解法:
使用大根堆和小根堆存储。 使用大根堆存储较小的一半数字,使用小根堆存储较大的一半数字。 插入数字时,在O(logn)时间内将该数字插入到对应的堆当中。当两边个数差大于1时,从多的一边取头上的数加入另一边,以维持平衡。 获取中数时,在O(1)时间内找到中数。
相关文章推荐
- 设计一个数据结构,其中包含两个函数,1.插入一个数字,2.获得中数。并估计时间复杂度。
- 有两个升序的的数组A1和A2,内存在A1末尾有足够的多余空间容纳A2,设计一个函数,把A2中的所有数字插入到A1中并且所有的数字都是升序的。
- 7.2 设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 数 dist 和显示坐标点的成员函数,并用数据进行测试。
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 设计函数,输入为一个字符串,里边包含中文、英文、数字等字符,编码为GBK。中文字符的编码规则假定为:双字节组成,高字节大于0x80,低字节任意。
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- //设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 //数 dist 和显示坐标点的成员函数,并用数据进行测试
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 构造一个单词查找树,支持以下两个操作的数据结构: 添加和搜索,只包含字母a-z或.。
- 华为机试题:判断一个数字中是否包含两个相同的子串 转载
- 设计一个包含pop,push,min在内的栈,并且各个函数的时间复杂度均为o(1)
- 关于栈的弹出函数设计是否应该有两个返回值,一个表示数据,一个表示是否栈为空