上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 前面章节中所介绍到的三种插入排序算法,其基本结构都采用数组的形式进行存储,因而无法避免排序过程中产生的数据移动的问题。如果想要从根本上解决只能改变数据的存储结构,改用链表存储。表插入排序,即使用链表的存储结构对数据进行插入排序。在对记录按照其关键字进行排序的过程中,不需要移动记录的存储位置,只需要更 阅读全文
posted @ 2018-05-23 09:31 程序员进阶笔记 阅读(7581) 评论(0) 推荐(1)
摘要: 2-路插入排序算法是在折半插入排序的基础上对其进行改进,减少其在排序过程中移动记录的次数从而提高效率。 具体实现思路为:另外设置一个同存储记录的数组大小相同的数组 d,将无序表中第一个记录添加进 d[0] 的位置上,然后从无序表中第二个记录开始,同 d[0] 作比较:如果该值比 d[0] 大,则添加 阅读全文
posted @ 2018-05-23 09:26 程序员进阶笔记 阅读(572) 评论(0) 推荐(0)
摘要: 上一节介绍了直接插入排序算法的理论实现和具体的代码实现,如果你善于思考就会发现该算法在查找插入位置时,采用的是顺序查找的方式,而在查找表中数据本身有序的前提下,可以使用折半查找来代替顺序查找,这种排序的算法就是折半插入排序算法。 该算法的具体代码实现为: 折半插入排序算法相比较于直接插入排序算法,只 阅读全文
posted @ 2018-05-23 09:23 程序员进阶笔记 阅读(1174) 评论(0) 推荐(0)
摘要: 插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。 直接插入排序是插入排序算法中的一种,采用的方法是:在添加新的记录时,使用顺序查找的方式找到其要插入的位置,然后将新记录插入。 很多初学者所说的插入排序 阅读全文
posted @ 2018-05-23 09:20 程序员进阶笔记 阅读(785) 评论(0) 推荐(0)
摘要: 排序算法 本章详细介绍多种排序算法:插入排序算法、快速排序算法、选择排序算法、归并排序和基数排序等,不仅介绍算法的理论实现,还有可运行的完整代码以及讨论各自的时间复杂度。 本章内容:1. 插入排序算法2. 折半插入排序算法(折半排序算法)3. 2-路插入排序算法4. 表插入排序算法5. 希尔排序算法 阅读全文
posted @ 2018-05-23 09:16 程序员进阶笔记 阅读(383) 评论(0) 推荐(0)
摘要: 上一节介绍了有关哈希表及其构造过程的相关知识,本节将介绍如何利用哈希表实现查找操作。 在哈希表中进行查找的操作同哈希表的构建过程类似,其具体实现思路为:对于给定的关键字 K,将其带入哈希函数中,求得与该关键字对应的数据的哈希地址,如果该地址中没有数据,则证明该查找表中没有存储该数据,查找失败:如果哈 阅读全文
posted @ 2018-05-21 16:09 程序员进阶笔记 阅读(931) 评论(0) 推荐(0)
摘要: 前面介绍了静态查找表以及动态查找表中的一些查找方法,其查找的过程都无法避免同查找表中的数据进行比较,查找算法的效率很大程度取决于同表中数据的查找次数。而本节所介绍的哈希表可以通过关键字直接找到数据的存储位置,不需要进行任何的比较,其查找的效率相较于前面所介绍的查找算法是更高的。 哈希表的构建 在初中 阅读全文
posted @ 2018-05-21 16:05 程序员进阶笔记 阅读(2854) 评论(0) 推荐(0)
摘要: 红黑树(R-B TREE,全称:Red-Black Tree),本身是一棵二叉查找树,在其基础上附加了两个要求: 树中的每个结点增加了一个用于存储颜色的标志域; 树中没有一条路径比其他任何路径长出两倍,整棵树要接近于“平衡”的状态。 这里所指的路径,指的是从任何一个结点开始,一直到其子孙的叶子结点的 阅读全文
posted @ 2018-05-21 15:45 程序员进阶笔记 阅读(818) 评论(0) 推荐(1)
摘要: 上一节介绍如何使用二叉排序树实现动态查找表,本节介绍另外一种实现方式——平衡二叉树。平衡二叉树,又称为 AVL 树。实际上就是遵循以下两个特点的二叉树: 每棵子树中的左子树和右子树的深度差不能超过 1; 二叉树中每棵子树都要求是平衡二叉树; 其实就是在二叉树的基础上,若树中每棵子树都满足其左子树和右 阅读全文
posted @ 2018-05-21 15:03 程序员进阶笔记 阅读(1102) 评论(0) 推荐(0)
摘要: 前几节介绍的都是有关静态查找表的相关知识,从本节开始介绍另外一种查找表——动态查找表。 动态查找表中做查找操作时,若查找成功可以对其进行删除;如果查找失败,即表中无该关键字,可以将该关键字插入到表中。动态查找表的表示方式有多种,本节介绍一种使用树结构表示动态查找表的实现方法——二叉排序树(又称为“二 阅读全文
posted @ 2018-05-21 14:51 程序员进阶笔记 阅读(11212) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 10 下一页