热搜关键词: 手机硬件物联网芯片封装C语言

pdf

算法:C语言实现 (第1~4部分)基础知识、数据结构、排序及搜索 (塞奇威克)

  • 1星
  • 2022-08-12
  • 55.73MB
  • 需要1积分
  • 21次下载
  • favicon收藏
  • rep举报
  • free评论
标签: 算法

算法

本书提供了用C语言描述的完整算法源程序,是Sedgewick彻底修订和重写的C算法系列的第一本。全书分为四部分,共16章。第一部分“基础知识”(第1~2章)介绍基本算法分析原理。第二部分“数据结构”(第3~5章)讲解算法分析中必须掌握的数据结构知识,主要包括基本数据结构、抽象数据结构、递归和树。第三部分“排序”(第6~11章)按章节顺序分别讨论基本排序方法(如选择排序、插入排序、冒泡排序、希尔排序等)、快速排序方法、归并和归并排序方法、优先队列与堆排序方法、基数排序方法以及特殊用途的排序方法,并比较了各种排序方法的性能特征。第四部分“搜索”(第12~16章)  在进一步讲解符号表、树等抽象数据类型的基础上,重点讨论散列方法、基数搜索以及外部搜索方法。

书中提供了用C语言描述的完整算法源程序,并且配有丰富的插图和练习,还包含大量简洁的实现将理论和实践成功地相结合,这些实现均可用在真实应用上。.本书内容丰富,具有很强的实用价值,适合作为高等院校计算机及相关专业本科生算法课程的教材,也是广大研究人员的极佳参考读物。本书是Sedgewick彻底修订和重写的C算法系列的第一本。全书分为四部分,共16章。第一部分“基础知识”(第1~2章)介绍基本算法分析原理。第二部分“数据结构”(第3~5章)讲解算法分析中必须掌握的数据结构知识,主要包括基本数据结构、抽象数据结构、递归和树。第三部分“排序”(第6~11章)按章节顺序分别讨论基本排序方法(如选择排序、插入排序、冒泡排序、希尔排序等)、快速排序方法、归并和归并排序方法、优先队列与堆排序方法、基数排序方法以及特殊用途的排序方法,并比较了各种排序方法的性能特征。第四部分“搜索”(第12~16章)  在进一步讲解符号表、树等抽象数据类型的基础上,重点讨论散列方法、基数搜索以及外部搜索方法。..书中提供了用C语言描述的完整算法源程序,并且配有丰富的插图和练习。作者用简洁的实现将理论和实践成功地结合了起来,这些实现均可在真实应用上测试,使得本书自问世以来备受程序员的欢迎。本书可作为高等院校计算机相关专业算法与数据结构课程的教材和补充读物,也可供自学之用。 

出版者的话.  译者序  前言

第一部分  基础知识

第1章  引言  1  1.1

算法  1  1.2 典型问题—连通性

2  1.3 合并-查找算法

5  1.4 展望

12  1.5 主题概述  13

第2章 算法分析的原理

15  2.1 实现和经验分析

15  2.2 算法分析

17  2.3 函数的增长

19  2.4 大O符号

23  2.5 基本递归方程

27  2.6 算法分析示例

29  2.7 保证、预测及局限性

33

第二部分  数据结构

第3章 基本数据结构

37  .3.1 构建组件  37  3.2 数组  44  3.3 链表  49  3.4 链表的基本处理操作  54  3.5 链表的内存分配  60  3.6 字符串  63  3.7 复合数据结构  66

第4章 抽象数据类型  74  4.1 抽象对象和对象集  76  4.2 下推栈ADT  78  4.3 栈ADT客户示例  79  4.4 栈ADT的实现  84  4.5 创建一个新ADT  87  4.6 FIFO队列和广义队列  90  4.7 复制和索引项  95  4.8 一级ADT  99  4.9 基于应用的ADT示例  106  4.10 展望  110

第5章 递归与树  111  5.1 递归算法  111  5.2 分治法  116  5.3 动态规划  127  5.4 树  133  5.5 树的数学性质  138  5.6 树的遍历  140  5.7 递归二叉树算法  145  5.8 图的遍历  149  5.9 综述  155

第三部分  排序

第6章 基本排序方法  157  6.1 游戏规则  158  6.2 选择排序  161  6.3 插入排序  162  6.4 冒泡排序  164  6.5 基本排序方法的性能特征  166  6.6 希尔排序  171  6.7 对其他类型的数据进行排序  177  6.8 索引和指针排序  180  6.9 链表排序  185  6.10 关键字索引统计  188

第7章 快速排序  191  7.1 基本算法  191  7.2 快速排序算法的性能特征  195  7.3 栈大小  198  7.4 小的子文件  201  7.5 三者取中划分..  203  7.6 重复关键字  206  7.7 字符串和向量  209  7.8 选择  210

第8章 归并与归并排序  213  8.1 两路归并  213  8.2 抽象原位归并  215  8.3 自顶向下的归并排序  216  8.4 基本算法的改进  219  8.5 自底向上的归并排序  220  8.6 归并排序的性能特征  223  8.7 归并排序的链表实现  225  8.8 改进的递归过程  227

第9章 优先队列和堆排序  229  9.1 基本操作的实现  231  9.2 堆数据结构  233  9.3 基于堆的算法  235  9.4 堆排序  240  9.5 优先队列ADT  244  9.6 索引数据项的优先队列  247  9.7 二项队列  250

第10章 基数排序  258  10.1 位、字节和字  259  10.2 二进制快速排序  261  10.3 MSD基数排序  265  10.4 三路基数快速排序  271  10.5 LSD基数排序  274  10.6 基数排序的性能特征  278  10.7 亚线性时间排序  280  第11章 特殊用途的排序方法  284  11.1 Batcher奇偶归并排序  284  11.2 排序网  289  11.3 外部排序  295  11.4 排序-归并的实现  299  11.5 并行排序/归并  303

第四部分  搜索

第12章 符号表和二叉搜索树  307  12.1 符号表抽象数据类型  308  12.2 关键字索引搜索  311  12.3 顺序搜索  313  12.4 二分搜索  318  12.5 二叉搜索树  321  12.6 BST的性能特征  327  12.7 符号表的索引实现  329  12.8 在BST的根节点插入  332  12.9 其他ADT函数的BST实现  336

第13章 平衡树  343  13.1 随机化BST  345  13.2 伸展BST  350  13.3 自顶向下2-3-4树  355  13.4  红黑树  360  13.5 跳跃表  368  13.6 性能特征  374

第14章 散列  377  14.1 散列函数  377  14.2 链地址法  385  14.3 线性探测法  388  14.4 双重散列表  392  14.5 动态散列表  396  14.6 综述  399

第15章 基数搜索  402  15.1 数字搜索树  402  15.2 线索  406  15.3 帕氏线索  413  15.4  多路线索和TST  419  15.5 文本字符串索引算法  430

第16章 外部搜索  434  16.1 游戏规则  435  16.2 索引顺序访问  436  16.3 B树  438  16.4  可扩展散列  447  16.5

综述...  455

推荐帖子 最新更新时间:2022-09-25 17:27

基于 FPGA vivado 2017.2 的74系列IP封装
基于 FPGA vivado 2017.2 的74系列IP封装实验指导 一、实验目的 掌握封装IP的两种方式:GUI方式以及Tcl方式 二、实验内容     本实验指导以74LS00 IP封装为例,介绍了两种封装IP的流程。 三、实验步骤 1.新建工程项目 1)双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado
大辉哥0614 FPGA/CPLD
【SensorTag】 资料收集&全面了解
本帖最后由 yueyuanque 于 2014-3-14 15:22 编辑 在Ti的 Texas Instruments Wiki 上面有一篇英文文章“SensorTag User Guide” http://processors.wiki.ti.com/index.php/Talk:SensorTag_User_Guide 文章从综述、硬件、软件方面进行了详细的介绍,这个对于初学者来说太
yueyuanque 无线连接
【雅特力 AT32F421评测】EXTI中断使用
            上回使用了I2C读取CH450按键码,传送门  事实上CH450有提供了一个中断线的,发生有效按键时候会有个低电平脉冲,通知控制器我这有货了。来取下,这样控制器就不需要去轮询是否有有效按键码了。        我把它接到PB6上,相关配置代码如下: /** * @brief EXTI9_5 Config.Configure PB6 in interrupt
eew_Violet 国产芯片交流
【C2000的使用经验】CLA与C28各用其长。
C2000 CPU,部分器件具有控制率加速器,它实际上相当于一个浮点CPU,运算能力超强。而C28是定点(或有浮点运算)处理器。 C28 CPU作主器件,CLA作从器件。CPU启动CLA时,不象CPU执行中断指令那样,需要十多个时钟周期后才可以执行中断功能的操作,C28 CPU执行中断时还需要作相应的入栈出栈操作。而CPU启动CLA时,是立即执行的,没有延时问题。 对于运算中经常遇到处
dontium 微控制器 MCU
MicroPython的HTS221驱动移植
HTS221的MicroPython驱动,其实几年前就做过(http://bbs.eeworld.com.cn/thread-488307-1-1.html),但是现在看当时的程序写得不太好,通用性也不够好,因此借这次活动得机会重新修改了驱动程序,使用更加方便了。   # HTS221 Humidity and temperature micropython drive # ve
dcexpert MEMS传感器
TMS320C55x的硬件结构
1.1C55x的CPU体系     C55x有1条32位的程序数据总线(PB),5条16位数据总线(BB、CB、DB、EB、FB)和1条24位的程序地址总线及5条23位的数据地址总线,这些总线分别与CPU相连。总线通过存储器接口单元(M)与外部程序总线和数据总线相连,实现CPU对外部存储器的访问。这种并行的多总线结构,使CPU能在一个CPU周期内完成1次32位程序代码读、3次16位数据读和两
Jacktang 微控制器 MCU

评论

yaoquan5201314
很不错的资料,感谢分享!
2022-08-15 17:03:21
登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
×