算法
麦嘟学编程
这个作者很懒,什么都没留下…
展开
-
散列函数之线性探测法处理冲突
题目: 1.设散列函数H(k)=k%13,设关键字系列为{22,12,24,6,45,7,8,13,21},要求用线性探测法处理冲突。(1)构建HASH表(2)分别求查找成功和不成功时的平均查找长度 答案:(1)(2) 查找成功的平均查找长度:(5*1+1*2+2*3+1*7)/9=20/9 查找不成功的平均查找长度:(2+1+9+8+...原创 2020-01-15 11:44:46 · 24692 阅读 · 7 评论 -
KMP算法详解 (转)
KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原因是KMP算法在构造跳转表next过程中进行了多个层面的优化和抽象,使得KMP算法进行模式匹配的原理显得不那么直白。本文希望能够转载 2016-09-27 17:04:23 · 823 阅读 · 0 评论 -
图解排序算法(四)之归并排序
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。分阶段...转载 2018-03-23 17:34:39 · 175 阅读 · 0 评论 -
十大经典排序算法
1.冒泡排序(Bubble Sort)(1)算法描述冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。(2)算法描述和实现具体算法描述如下:<1>.比较相邻的元素。如果第一个比第二个大...转载 2018-03-21 18:14:58 · 840 阅读 · 1 评论 -
二叉树的遍历规则
今天看了一些关于平和查找二叉树的问题,顺便也复习了一下二叉树的遍历规则,写一下学习文档。树的遍历顺序大体分为三种:前序遍历(先根遍历、先序遍历),中序遍历(中根遍历),后序遍历(后根遍历)。 如图所示二叉树: 前序遍历:前序遍历可以记为根左右,若二叉树为空,则结束返回。 前序遍历的规则:(1)访问根节点(2)前序遍历左子树(3)前序遍历右子树...转载 2018-09-23 22:18:17 · 1324 阅读 · 0 评论