原文:《算法导论》读书笔记之第14章 数据结构的扩张

前言:通常我们会遇到一些问题,采用一些标准的数据结构,如双链表 散列表或二叉查找数时,不能够满足操作要求,需要对这些数据结构进行扩张,添加一些额外的信息使得能够完成新的操作。附加的信息需要对数据结构的某些操作进行调整,这个是非常关键的步骤,决定着数据结构扩张是否能够实现。本章主要讨论了红黑树结构的扩张,介绍了两种扩张方式。第一种方式扩张使得红黑色能够支持动态集合上顺序统计,快速找出集合中第i小的 ...

2013-03-09 11:01 4 3111 推荐指数:

查看详情

算法导论读书笔记之第10 基本数据结构

摘要   本章介绍了几种基本的数据结构,包括栈、队列、链表以及有根树,讨论了使用指针的简单数据结构来表示动态集合。本章的内容对于学过数据结构的人来说,没有什么难处,简单的总结一下。 1、栈和队列   栈和队列都是动态集合,元素的出入是规定好的。栈规定元素是先进后出(FILO),队列规定元素 ...

Sun Jan 27 01:39:00 CST 2013 9 2489
算法导论读书笔记之第10 基本数据结构之二叉树

摘要   书中第1010.4小节介绍了有根树,简单介绍了二叉树和分支数目无限制的有根树的存储结构,而没有关于二叉树的遍历过程。为此对二叉树做个简单的总结,介绍一下二叉树基本概念、性质、二叉树的存储结构和遍历过程,主要包括先根遍历、中根遍历、后根遍历和层次遍历。 1、二叉树的定义   二叉树 ...

Sun Jan 27 20:02:00 CST 2013 2 3824
算法导论读书笔记之第2 算法入门

  本章通过介绍插入排序和归并排序两种常见的排序算法来说明算法的过程及算法分析,在介绍归并排序算法过程中引入了分治(divide-and-conquer)算法策略。 1、插入排序   输入:n个数(a1,a2,a3,...,an)   输出:输入序列的一个排列(a1',a2',a3 ...

Tue Jan 22 19:20:00 CST 2013 6 3911
算法导论读书笔记之第11 散列表

摘要:   本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散 ...

Mon Jan 28 06:24:00 CST 2013 9 8594
算法导论读书笔记之第13 红黑树

摘要:   红黑树是一种二叉查找树,但在每个结点上增加了一个存储位表示结点的颜色,可以是RED或者BLACK。通过对任何一条从根到叶子的路径上各个着色方式的限制,红黑树确保没有一条路径会比其他路径长 ...

Wed Jan 30 20:25:00 CST 2013 11 14678
算法导论读书笔记(一)

算法导论读书笔记之第1 算法在计算机中的作用   本章是本书的开篇,介绍了什么是算法,为什么要学习算法算法在计算机中的地位及作用。   算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤 ...

Sun Feb 25 20:20:00 CST 2018 0 1156
算法导论读书笔记之第6 堆排序

  本章开始介绍了堆的基本概念,然后引入最大堆和最小堆的概念。全采用最大堆来介绍堆的操作,两个重要的操作是调整最大堆和创建最大堆,接着着两个操作引进了堆排序,最后介绍了采用堆实现优先级队列。 1、堆   堆给人的感觉是一个二叉树,但是其本质是一种数组对象,因为对堆进行操作的时候将堆视为一颗 ...

Thu Jan 24 00:43:00 CST 2013 10 10557
算法导论读书笔记之第7 快速排序

  本章介绍了快速排序及其算法分析,快速排序采用的是分治算法思想,对包含n个数的输入数组,最坏情况下运行时间为θ(n^2),但是平均性能相当好,期望的运行时间为θ(nlgn)。另外快速排序能够就地排序(我理解是不需要引入额外的辅助空间,每次划分能确定一个元素的具体位置),在虚拟环境中能很好的工作 ...

Fri Jan 25 00:28:00 CST 2013 4 3207
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM