`

十大常用数据结构

阅读更多
一、栈:

1、后缀表达式的求值;
2、中缀到后缀表达式的转换;
3、深度优先搜索的非递归实现;
4、动态规划的优化:用于维护一个凸序列,便于二分查找,如LIS问题的O(nlgn)算法。

二、队列:
1、树的层序遍历;
2、广度优先搜索;
3、Bellman-Ford算法的SPFA实现;
4、网络流中FF算法的Edmonds-Karp实现,以及Preflow算法的队列优化实现。


三、二叉搜索树:

1、对大量的关键字的索引查找;
2、有很多平衡策略以改善其平均性能:
常用平衡树:AVL,红黑树,随机化BST,Splay Tree,Treap(或叫笛卡儿树)。

四、散列表(hash表):
1、一般针对值域较大但状态很稀疏的应用,比如状态压缩记忆化搜索;
2、实现映射功能。

五、检索树(Trie):
1、一般用于字符串索引算法,速度快,但占用空间较大(相对hash);
2、常用的改进结构:Patricia线索树,多叉检索树(TST)。

六、优先队列:

1、常用的是二叉堆的实现,具体应用如堆排序和Dijkstra算法;
2、当需要快速合并两个优先队列时,常用二项式队列,实现简单。
3、注意最大最小堆的配对使用。

七、线段树和树状数组:

1、两者都可以用于离散对象的统计;
2、后者的步进函数的性质和应用值得注意;
3、前者基本上适用于任何的区间操作,如求区间最值,改变区间的值等。
4、线段树还可以用于优化状态的枚举,经常和动态规划结合。

八、后缀树与后缀数组:

1、总体规律是两者的实现都比较复杂,前者更甚,但是前者的功能也更强大;
2、几乎可以解决所有常见的关于字符串的算法,如最长回文子串,最长重复子串,以及很多的模式匹配问题。

九、并查集:

1、解决无向图的连通性问题,如用于Kruskal算法;
2、解决等价关系的查询(这是它的主要用武之地),如05年Baidu之星初赛的石头剪子布游戏;
3、优点是实现异常简单,缺点是合并后无法分离,若需要可以选择用动态树。

十、邻接表和边表:

1、表示图的最直接的方法;
2、后者更省空间,并且在一定程度上更好用,比如Bellman-Ford算法。
ps:数组、链表太基础不在考虑之列。
分享到:
评论
1 楼 dongbiying 2016-01-21  
不懂呀。。

相关推荐

    数据结构:一篇拿捏十大排序(超详细版)

    八大常用排序实现和过程

    csmar国泰安常用控制变量数据大合集

    csmar国泰安常用控制变量数据大合集 指标如下: 代码 年代 简称 行业 行业代码 成立日期 上市日期 年份 是否新能源企业 研发投入 研发投入比营业收入 政府补助 税收减免 公司规模 资产负债率 第一大股东比% 上市年限...

    十大经典排序算法源码.cpp

    爆肝整理!堪称全网最详细的十大常用经典排序算法总结!!! C++模板类实现,附带部分测试用例!!!

    数据科学家最常用的十大机器学习算法

    模型运行被许多因素左右,例如数据集的大小和结构因此,你应该根据你的问题尝试许多不同的算法,同时使用数据测试集来评估性能并选出最优项当然,你尝试的算法必须和你的问题相切合,其中的门道便是机器学习的主要...

    Introduction to Algorithms 3rd

    本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。本书被china-pub会员评为“2007年我最喜爱的十大技术图书”之一,被《程序员》等机构评选为2006年最...

    算法导论<Introduction to Algorithms>[含图含公式]【英文原版】

    本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。 本书编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题。

    算法导论(第二版)原版

    本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。 本书编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题。

    十大排序算法.pdf

    十大常用排序算法整理及C++实现。包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序,并对简要说明了算法步骤及相应的算法复杂度。

    C++简历:大厂参考简历和双非简历

    熟悉常见数据结构及算法,如十大排序(快速排序、归并排序、堆排序等); 熟悉 OSI 七层模型,掌握 HTTP、TCP/UDP、IP 等常见协议; 熟悉深度学习目标检测相关工作,熟悉常见深度学习算法模型; 对 Linux 下 I/O ...

    算法导论中文版第二版_带完整目录_扫描版001

     本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。  本书编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题...

    \算法导论中文版第二版 带完整目录_扫描版

     本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。  本书编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题...

    算法导论中文版第二版_带完整目录_扫描版002

     本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。  本书编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题...

    数据分析师最常用的10个机器学习算法!

    本文来自于51cto,介绍了数据科学家常使用的十大机器学习算法详细以及他们的特性等相关知识。在机器学习领域,有种说法叫做“世上没有免费的午餐”,简而言之,它是指没有任何一种算法能在每个问题上都能有最好的...

    初学者编程必须养成的十大好习惯

    做一份所用程序语言的精简列表,包括基本数据类型、各类运算符说明、基本语句结构、常用关键词(保留字)、常用函数(控件)说明等等。 4、自由独立 为你的应用程序建立一个单独的目录,这样既方便应用程序文件的管理...

    算法导论(原书第2版)

    被《程序员》等机构评选为2006年最受读者喜爱的十大IT图书...本书以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。 解压后为pdf格式,包括1,2,3,4,15章。

    算法导论习题参考答案(学习中。。。)

    本书深入讨论各类算法,并着力使这些... 以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。教学网址、视频课程及在线学习中心,全方位学习模式,内容很丰富。

    solution to CLR(算法导论习题答案)

    solution to CLR(算法导论习题答案)... 以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。教学网址、视频课程及在线学习中心,全方位学习模式,内容很丰富。

    [算法导论(英文版).djvu

    在有关算法的书中,有一些叙述非常... 以相当的深度介绍了许多常用的数据结构和有效的算法,使得这些算法的设计和分析易于被各个层次的读者所理解。教学网址、视频课程及在线学习中心,全方位学习模式,内容很丰富。

Global site tag (gtag.js) - Google Analytics