首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

算法精解:C语言描述(Kyle Loudon著)(2)

2012-10-25 
  oreilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创新产业的革命性思想。作为技术人士获取信息的选择,oreilly现在还将先锋专家的知识传递给普通的计算机用户。
商家名称 信用等级 购买信息 订购本书
算法精解:C语言描述(Kyle Loudon著) 去商家看看
算法精解:C语言描述(Kyle Loudon著) 去商家看看

问与答
相关主题
第15章 数据加密
DES算法介绍
DES的接口定义
DES算法的实现和分析
DES应用举例:分组加密模式
RSA算法介绍
RSA的接口定义
RSA算法的实现与分析
问与答
相关主题
第16章 图算法
最小生成树的描述
最小生成树的接口定义
最小生成树的实现与分析
最短路径的描述
最短路径的接口定义
最短路径的实现与分析
最短路径的例子:路由表
旅行商问题的描述
旅行商问题的接口定义
旅行商问题的实现与分析
问与答
相关主题
第17章 几何算法
测试线段是否相交
测试线段是否相交的标准方法
检测线段是否相交的接口定义
检测线段是否相交的实现与分析
凸包简介
Jarvis'sMarch
凸包的接口定义
凸包的实现与分析
球面弧长
求解球面弧长的接口定义
求解球面弧长的实现和分析
球面弧长的应用举例:地球上两点之间的近似距离
问与答
相关主题

文摘

版权页:



插图:



问与答
问:链表比数组优越的地方前面已经介绍过了。但是,数组同样也有比链表优越的地方,那么什么情况下适合使用数组呢?
答:当我们期望进行频繁的插入和删除操作时,链表比数组更有优势。然而,当我们期望进行随机访问的次数高于插入和删除操作的次数时,数组就显得更有优势了。随机访问是数组的强项,因为它们的元素在内存中是连续排列的。这种连续的排列方式使得数组中的任何元素能够在O(1)的时间内通过其索引访问。回顾一下访问链表中元素的方法,我们必须得有一个指向元素的指针。如果我们对访问元素的方式不甚了解,那么要获取某个指向特定元素的指针的代价将非常高。在实践中,对于许多应用来说,我们至少需要遍历链表的一部分。如果存储数据的总量是恒定的,则数组也有更大的优势,因为它们不需要增加额外的指针来使得它们所有的元素“链接”起来。
问:关于链表的插入、删除以及访问元素的操作和数组相比有何差异?
答:回顾一下本章中各种形式的链表,除了销毁链表操作外,其他的操作都具有O(1)的运行时复杂度。确实,这种表现似乎很难控制。然而,在分析过程中有一点并没有说明,那就是对于许多链表的操作来说,想得到指向链表中某个特定元素的指针其代价是很高的。例如,在最坏的情况下,可能需要遍历整个链表,此时的开销就是O(n),这里n代表链表中的元素个数。另一方面,在一个设计得当的应用中,比如本章的页帧管理,则对此就不会有任何性能上的额外开销。因此,观察应用的特点是非常重要的。对于数组,插入和删除都是O(n)级别的操作,因为在最坏的情况下,插入或删除索引为0的元素需要将其他所有的元素都移动一个位置来调整整个数组的布局。如果我们知道索引值,则访问数组中的元素就是o(1)的操作。
问:假设我们想在本章给出的单链表基础上写一个名为list_ins_pos的函数,它的作用是在给定的位置之后插入一个新元素。假设我们希望在第9个元素之后插入新元素,但并不直接提供指向第9个元素的指针。那么这个函数的运行时复杂度是什么?

相关阅读:

建设工程施工管理复习题集(附光盘1张)

物业管理理论与实务(裴艳慧著)

DK怀孕与分娩百科全书(玛丽.斯汀著)

使宝宝健康聪明的孕妇操(沈善美著)

中华人民共和国国家标准:(GB50003-2011)砌

新英汉汉英词典(双色版)   

更多图书资讯可访问读书人图书频道:http://www.reAder8.cn/book/

热点排行