- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 order statistics(找最ith小数值)问题
order statistics就是在一堆无序的序列中查找第n小元素。分为2种:1.静态,也就是序列给定,并且不再变化,此时采取类似快排的做法,需要改变判断条件和结束条件。2动态,就是元素在不断的增加和减少,在此过程中需要查找第nth元素,此时需要使用RBTree来实现,在data区加上一个value,表示以此为根的子树种节点个数(http://blog.csdn.net/hxxiao
2006-11-29 12:29:00 1704
原创 红黑树(RBTree)的分析和实现
二叉排序树在查找方面提供了很大的方便,但是对worst-case查找/插入/删除/求最值 得时间复杂度都为O(n).红黑树可以保证在worst-case下查找/插入/删除等的复杂度得到O(lgN)。红黑树保持如下特性:1。节点不是red 就是black2。root为black3。所有的leaf为black4。所有red node 的孩子为black5。任一node通过左子树
2006-11-25 16:53:00 3681 1
原创 数据结构:最小堆/哈希表/二叉树/平衡二叉树/红黑树的意义(什么情况下使用)
接触堆数据结构是在排序里面讲的,空间复杂度O(1),时间复杂度O(NlogN),但是在实践中还是不如快速排序(好像快速排序可以更好的利用硬件特性)。堆的意义就在于:最快的找到最大/最小值,在堆结构中插入一个值重新构造堆结构,取走最大/最下值后重新构造堆结构 其时间复杂度为O(logN),而其他方法最少为O(N).堆实践中用途不在于排序,其主要用在调度算法中,比如优先级调度,每次取优先级最高的,时间
2006-11-19 10:27:00 4798 1
原创 [topCoder-每日一二题]--[6]----动态规划
一个比较有意思的题目,一条街上有很多房子,现在需要对房子染色(红,绿,蓝) ,染色需要耗费资金,染成rgb耗费不同,并且相邻房子的颜色不同,求最少耗费。给出一个vectorhouses,每一个元素形如" 1 100 123",表示染成rgb对应的耗费。 The people of RGB Street h
2006-11-16 21:15:00 2117
原创 求结构长度笔试题的分析。
最近作了一些笔试题,发现有一些是求一个结构的大小。做一下总结typedef struct tBit{ short m; char a; char n;}A; typedef struct tBit{ char a; short m; char n;}B; typedef struct tBit{ char n; char a;
2006-11-12 11:15:00 1471
原创 [topCoder-每日一二题]--[5]
比较有意思的一个题目问题:车上有2列椅子,同一列中相邻椅子的距离为1,两列之间的距离为2,椅子上有一些乘客,现在上来上个人,如何使他们之间的距离和最短?解决:如果两列得某一列中有连续3个空位,则是最短距离为4。否则,按照2为坐标把空位存储到vector中,(x,y) 第一列为(0,i),第二列为(2,i),然后按照y排序,如果y相同,按照x排序。这样对排序好的数组依次取3个计算距离,取最小
2006-11-09 20:50:00 1415
原创 [topCoder-每日一二题]--[4]----动态规划的使用
几天作了一个题目,使用到了动态规划思想,避免重复计算的重要性。不避免重复计算,程序通不过测试(超时),而避免了重复计算,速度明显加快。问题描述: 格式如:" s t p"表示一个比赛开始的时间为s 结束时间为t 胜出的可能为p(0--100)现在有一个vectorco,需要求一下参加比赛能使累计p得值为最大,比如参加3场比赛,把p累计得q,即求得能得到q,求q的最大值。
2006-11-09 20:40:00 1374
原创 多关键字排序问题
对含有多个关键字的结构进行排序,比如 vector >, 对于pair中的first按照递增排序,对于first相同的按照second递增排序class cmp{ public: bool operator()(pairp1,pairp2) { return (p1.first == p2.first)?p1.second }};然后调用sort函数就可以了
2006-11-02 15:14:00 2953
原创 [topCoder-每日一二题]--[3]
问题描述:描述不准确,把英文描述贴上来 A group of social bugs lives in a circular formation. These bugs are either red or green. Once every minute, a new green bug appears
2006-11-02 14:56:00 1904
原创 关于复杂问题向01两种状态转化的一点看法
昨天做了一个topcoder题目,题目大致就是对一个给定的字符串进行处理。字符串中是R 或者G。对字符串进行处理得到S,如果S不满足,则对S处理。我使用普通的做法,重新定义一个字符串T,保存对S进行处理的结果,如果T不满足,S=T重新计算。(http://blog.csdn.net/hxxiaopei/archive/2006/11/02/1362791.aspx)看了一下,有个大虾使用0
2006-11-02 11:26:00 1116
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人