xiaopei的博客

--好好学习,天天向上

陈培军 ID:hxxiaopei
18148次访问,排名5990(-5)好友0人,关注者0
hxxiaopei的文章
原创 44 篇
翻译 0 篇
转载 7 篇
评论 6 篇
xiaopei的公告
-今年是菜鸟,明年成大牛- It is about Computer Science Technology
最近评论
vvukqr:wow power leveling
vvukqr:wow power leveling
lijing00333:很牛嘛
wenjie:baidu下yum源设置,没想到baidu到师兄你这了 挖哈哈~
xiaopei:所需要的头文件 sstream
文章分类
收藏
    相册
    兄弟
    Dave chen
    InterMa
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 数据结构:最小堆/哈希表/二叉树/平衡二叉树/红黑树的意义(什么情况下使用)收藏

    新一篇: 红黑树(RBTree)的分析和实现

    接触堆数据结构是在排序里面讲的,空间复杂度O(1),时间复杂度O(NlogN),但是在实践中还是不如快速排序(好像快速排序可以更好的利用硬件特性)。堆的意义就在于:最快的找到最大/最小值,在堆结构中插入一个值重新构造堆结构,取走最大/最下值后重新构造堆结构 其时间复杂度为O(logN),而其他方法最少为O(N).堆实践中用途不在于排序,其主要用在调度算法中,比如优先级调度,每次取优先级最高的,时间驱动,取时间最小/等待最长的 等等 ,分为最大堆/最小堆。

    哈希表主要可以在O(1)时间内对查找对象定位,但是事实上,如果输入集合不确定的情况下,可能出现大量的冲突,虽然有很多好的哈希函数,但是随着随机输入,大量冲突还是不可避免,可能出现最差情况。所以,哈希表如果用在输入集合确定(即以后只会做查询操作)的情况下,选择合适的函数函数和解决冲突的方法(perfect hash)可以在O(1)时间内完成查找(有证明,看不懂)。

    二叉树支持动态的插入和查找,保证操作在O(height)时间,这就是完成了哈希表不便完成的工作,动态性。但是二叉树有可能出现worst-case,如果输入序列已经排序,则时间复杂度为O(N)

    平衡二叉树/红黑树就是为了将查找的时间复杂度保证在O(logN)范围内。

    所以如果输入结合确定,所需要的就是查询,则可以考虑使用哈希表,如果输入集合不确定,则考虑使用平衡二叉树/红黑树,保证达到最大效率

    发表于 @ 2006年11月19日 10:27:00|评论(loading...)|编辑

    旧一篇: [topCoder-每日一二题]--[6]----动态规划

    评论

    #vvukqr 发表于2008-07-02 14:23:39  IP: 58.17.152.*
    wow power leveling
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © xiaopei