新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 研友的交流园地,讨论关于计算机考研的方方面面。
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机理论与工程『 计算机考研交流 』 → 数据结构教材一道课后题的疑问 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6275 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 数据结构教材一道课后题的疑问 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     chyl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:12
      积分:120
      门派:XML.ORG.CN
      注册:2006/8/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chyl发送一个短消息 把chyl加入好友 查看chyl的个人资料 搜索chyl在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chyl的博客楼主
    发贴心情 数据结构教材一道课后题的疑问

    7.23题:
    教材中那些算法不不要访问已排好序的纪录。
    有没有快速排序呢?给的答案是没有,但觉得的确是不用再访问了啊。。。。

    7.24题:
    教材中那些算法不适合用链表来实现。
    有没有直接选择排序呢?教材上的理由是,链式存储无法做到找到第i个位置。但是如果用一个指针pointer保存这个位置,每当选择到一个第i小的就与之交换,然后另pointer=pointer->next行不行呢?

    7.25题(3)
    答案中说,归并排序算法对于规模比较小的数据平均效率较高。但是改进的归并排序在序列长度小于THRESHOLD的时候就会使用改进的插入排序。所以该题用的还是改进的插入排序。而且从教材表7.3中可以看出,数组规模为10的时候,改进的归并排序和改进的插入排序时间完全一样,这更说明了这一点。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/13 23:24:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客2
    发贴心情 
    我同意1,3,不同意2
    1。快速排序一趟下来只有轴被排好,在下一轮中它是不被访问的。教材中答案可能是考虑到了改进的快速排序,因为直接插入排序是需要访问排好的记录的。

    2。如果用一个指针pointer保存这个位置,每当选择到一个第i小的就与之交换,然后另pointer=pointer->next行不行呢?
    行,但是如果再换2分查找,数组随机访问的优势是链表线性访问所不能替代的。用链表这个算法也就失去了意义。

    3。答案好像错了。5个记录哪有用归并的?应该按你说的,用改进的插入排序。
    改进的归并排序和改进的插入排序时间完全一样
    肯定有些差别,如多一句门槛的判断,且归并代码那么长,题目说经常使用,假设进程所拥有的空闲页面不够装下归并,但能装下用改进的插入排序,那么前者在执行缺页中断的次数上要比后者多,系统开销大,从而时间花费也多。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/20 15:16:00
     
     chyl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:12
      积分:120
      门派:XML.ORG.CN
      注册:2006/8/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chyl发送一个短消息 把chyl加入好友 查看chyl的个人资料 搜索chyl在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chyl的博客3
    发贴心情 
    1。改进的似乎也不用访问排好的的纪录吧?我不很确定,你能举个例子吗?

    2。你的意思我没看懂,为什么要换2分查找呢?不是直接选择排序吗?

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/21 15:45:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客4
    发贴心情 
    1。例如:待排数组中的元素依次为[1,3,2],则由于该数组长度小于门槛,算法进入直接插入排序。在第一轮后,数组为[1,3,2],其中1,3已经排好,第二轮过后,数组为[1,2,3],可见排好的元素2被换到了3的位置。

    2。直接选择每次都在剩下的元素中选最小值。这就注定该算法是可以借助某个优先队列加以提高效率。例如选堆,它是一种逻辑上的二叉树,其逻辑结构的查找过程为2分查找,如果用链表实现,则各节点之间的逻辑关系需要指针反复移动实现,而这样的移动开销太大,得不偿失。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/21 17:12:00
     
     chyl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:12
      积分:120
      门派:XML.ORG.CN
      注册:2006/8/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chyl发送一个短消息 把chyl加入好友 查看chyl的个人资料 搜索chyl在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chyl的博客5
    发贴心情 
    1.似乎在第一轮后,数组就已经排好序了。所以应该是不用再访问的啊,而且如果改进的口快速排序还要访问已经排好的轴值,就说明它还需要再改进,我想我可以写出这个程序来。

    2.直接选择排序的确可以借助某些方法提高效率,但是实际上并没有借助啊。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/21 23:25:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客6
    发贴心情 
    1.咋会一轮?在我给的例子下,它和轴值咋会有关?此时算法已经完全变成了直接插入排序。
    2.实际上借助的还要复杂哩,例如F堆等等。总之,选择算法在每找一个值时,指针的移动量太大。在张铭的课件中写到:当读操作比插入删除操作频率大时,不应选择链表。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/22 21:34:00
     
     chyl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:12
      积分:120
      门派:XML.ORG.CN
      注册:2006/8/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chyl发送一个短消息 把chyl加入好友 查看chyl的个人资料 搜索chyl在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chyl的博客7
    发贴心情 
    1。我明白你的意思了:)

    2。你的意思是说,指针从头到尾移动一遍的话,量很大吗?为什么呢?

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/23 12:59:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客8
    发贴心情 
    2.这里面是一个利弊权衡的问题,从硬着头皮做的角度上,这些算法都可以用链表实现。但是算法本身是讲究效率的。为了找一个数就遍历整个数组可能已经是最坏的算法了。

    关于链表与数组的区别,可以看下这张幻灯片:


    此主题相关图片如下:
    按此在新窗口浏览图片

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/23 19:42:00
     
     chyl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:12
      积分:120
      门派:XML.ORG.CN
      注册:2006/8/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chyl发送一个短消息 把chyl加入好友 查看chyl的个人资料 搜索chyl在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chyl的博客9
    发贴心情 
    好的,谢谢!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/25 19:36:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 计算机考研交流 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/2 16:43:27

    本主题贴数9,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    97.656ms