数据结构与算法目录
2014-05-12 13:48
288 查看
前言:
数据结构与算法系列先看这里,有助于你更好地获取内容。首先明白一个问题:为什么要研究数据结构?
这是因为所有的程序本质上是对数据进行处理,如何高效的处理数据,这依赖于数据本身的结构(如类型(整型、浮点型等)、维数、是否为复杂类型(结构体类型、类类型)等)以及数据之间的逻辑关系(线性、非线性等)。我们所学的数据结构这门课程就是研究这些内容的,只有弄清楚了这些,我们才可以用高效的算法与之结合,产生高效率的程序。掌握好数据结构的内容也是一个程序员的基本功,特别对于c/c++程序员。
数据结构离不开算法,设计好的数据结构就是为了让算法顺利方便的实施。因此,此系列也涉及不少常见算法,以加深对数据结构的理解和应用。
我想说:一个没有研究过数据结构的c/c++程序员,不是一个合格的c/c++程序员。
常见用语解释
逻辑结构:描述的是数据元素之间的逻辑关系,如线性和非线性。物理结构:描述的是数据元素在计算机存储器上的存储安排,也叫做存储结构。如顺序存储,链式存储。
稳定性:判断一个排序算法稳定性的根据很简单:相同的元素在排序后的前后位置关系应该不变,若发生了改变,则表明此算法是不稳定的。
数据结构:一种存储和组织数据的方式,旨在便于访问和修改。没有一种单一的数据结构对所有的用途均有效,故重要的是了解该数据结构类型的特点和使用场景。
线性结构:唯一前驱、唯一后继,反映一种线性关系。
树形结构:唯一前驱、多个后继,反应一种层次关系。
图结构:前驱个数和后驱个数都不限制,反应一种网状关系。
时间复杂度、空间复杂度(这两个是必须理解的)。
O(1)表示时间复杂度不依赖于数据规模n,即复杂度是一常数。
我们常见的
,其实是
,这是一种约定俗成的写法,并且对任何不为1的a,都有
是O(
)的。
它比线性n增长慢。
的增长率低于二阶
,但高于一阶n。
指数规模比任何的多项式的如(
)都快。
说明
随着内容增多,本文会相应增加一些目录和索引,以方便你更好地查找。数据结构与算法的内容已经独立成为一个专栏:数据结构与算法。
特别地,提取出其中的算法内容独立成为一个专栏,如果你专注于算法,请直接关注经典算法揭秘专栏。
数据结构与算法目录
导入:约瑟夫问题的数组解法一、数据结构基础篇链表
单链表,单循环链表,约瑟夫问题
链表常见操作:逆置(反转)
链表常见操作:有序链表合并去重
链表常见操作:环、倒数第k个、相交
链表的应用:单元多项式的加法、减法、乘法
栈和队列
栈的实现:顺序栈
栈的实现:链式栈
栈的应用:解析算术表达式
前缀、中缀、后缀表达式
队列的实现:顺序队列
队列的实现:链式队列
队列的应用:优先队列
队列的应用:双端队列
串
串的匹配:朴素匹配&KMP算法
树
树、二叉树基础
二叉树
二叉搜索树
二叉树前序、中序、后序遍历非递归写法的透彻解析
堆
哈夫曼树
图
图论基础
图的实现:邻接矩阵
图的实现:邻接表
图的遍历:深度优先、广度优先
拓扑排序
单源最短路径:Dijkstra算法
点对之间最短路径:Floyd算法
最小生成树:Prim算法
最小生成树:Kruskal算法
二、排序插入排序
插入排序:直接插入、交换插入、折半插入
插入排序:二路插入
插入排序:表插入
插入排序:表折半插入
插入排序:希尔排序
选择排序
选择排序:简单选择、树形选择
选择排序:堆排序
交换排序
交换排序:冒泡排序
交换排序:快速排序
归并排序
归并排序:二路归并
索引排序
索引排序
线性排序
计数排序
基数排序
桶排序
外排序
多路归并
三、检索顺序检索
二分检索
差值查找
位图法
所有内容的目录CCPP Blog 目录
有任何疑问和建议,欢迎各位留下评论,希望不吝赐教。本博客长期更新,你的建议会及时反映到博客中。期待你的精彩评论!多谢。For a programmer,your charm derives from your code.
相关文章推荐
- [02. 数据结构和算法]文章目录
- 数据结构与算法目录
- 数据结构与算法目录-复习专用
- 数据结构及算法 -- 目录
- 数据结构与算法学习目录
- 数据结构与算法目录
- 【数据结构与算法】算法备忘
- 数据结构与算法实验题 11.1 堆箱子问题
- 数据结构之算法简介
- 【算法学习笔记】12.数据结构基础 图的初步1
- 算法:图的普里姆算法最小生成树-数据结构(22)
- 数据结构与算法之——高斯算法
- JavaScript数据结构与算法Item1--数组
- 数据结构与算法(C#):Collections和泛型
- 第十一周 项目一 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构与算法笔记 lesson 16 八皇后问题
- 数据结构与算法——二叉树的前序遍历,中序遍历,后序遍历
- 数据结构基础算法-堆
- 数据结构与算法基本概念
- .net 数据结构与算法基础:泛型编程、时间测试