数据结构与算法
数据结构与算法
徐明曉
这个作者很懒,什么都没留下…
展开
-
【数据结构与算法】KMP算法
前言【例】:主串s:AAAABABABBBBB 模式串t :ABABABB 本文主要针对KMP算法的代码方式进行解析,首先我们要知道KMP算法的作用,是用来进行字符串匹配的,即在s串中找出与t串完全匹配的字符串,并且返回起始位置。首先介绍字符串匹配的暴力匹配算法;然后介绍有next数组的KMP匹配算法;最后介绍next数组的求解算法;这是因为以上三种算法在形式上有一定的...原创 2020-04-09 16:03:58 · 281 阅读 · 0 评论 -
数据结构:B-树和B+树的相同点和不同点
前言:其他内容正在学习中…【答案】图片来源: link.一个m阶的B-树和B+的区别,具有如下几个特征: 关键词 B-树 B+树 备注 最大分支,...原创 2020-03-25 22:03:13 · 1854 阅读 · 0 评论 -
【数据结构与算法】快速排序详解(含代码)
快速排序原理:每一趟选择当前所有子序列中的一个关键字作为枢纽(一般情况下选数组第一个值),将子序列中比枢纽小的移动到枢纽前面,比枢纽大的移动到枢纽后面。当本趟所有子序列都被枢纽以上述规则划分完毕后会得到新的两组更短的子序列(位于枢纽的左右),他们将成为下一趟划分的初始序列集。利用递归的思想,可最终完成排序。。快速排序示例:原始序列: 3, 1 ,6 ,2 ,5 ,8位置: i ...原创 2020-03-20 00:26:34 · 1577 阅读 · 0 评论 -
【数据结构与算法】排序算法总结
前言:这是我考研时根据率辉老师的《高分笔记》总结的。一.总结名称空间复杂度最好情况下时间复杂度最差情况下时间复杂度直接插入排序O(1)已经有序,双层循环变为单层,O(n)O(n2 )希尔排序O(1)无O(n2)冒泡排序O(n)已经有序,O(n)O(n2)快速排序O(log2n)越无序效率越高,O(log2n)O(n2)简...原创 2020-03-19 20:25:21 · 113 阅读 · 0 评论 -
子字符串查找:Rabin-Karp算法(指纹字符串查找算法)
参考网站:https://blog.csdn.net/fjssharpsword/article/details/53462292https://cloud.tencent.com/developer/article/1139653参考书籍:Algorithm (算法) Robert Sedgewick / Kevin Wayne著 谢路云译1. 题目描述查找目标字符串K中是否有与字...原创 2020-03-28 10:30:39 · 317 阅读 · 0 评论 -
算法基础:归并排序
1. 题目描述排序数组2. 考察知识点归并排序3. 思路将一个大数组分成两个小数组去求解。4. 代码(Java)import org.junit.Test; //两路归并算法,两个排好序的子序列合并为一个子序列public class MergeSort { public void merge(int []a,int left,int mid,int right){...原创 2020-03-27 10:54:45 · 99 阅读 · 0 评论 -
【数据结构与算法】堆排序代码
https://www.jianshu.com/p/11655047ab58原创 2020-04-02 22:45:53 · 230 阅读 · 0 评论 -
【数据结构与算法】冒泡排序详解(含代码)
一、冒泡排序基本思路 :首先第一个关键字和第二个关键字比较,如果第一个大,则两者交换,否则不交换;[ 注:通俗的讲,比较过程中,较大的数字会后移。]然后第二个关键字和第三个关键字比较,如果第二个大,则两者交换,否则不交换…直到数组中最大的那个值被交换到了最后面,一趟循环完成。然后经多次排序,大的数字依次上升,数组变得有序。二、冒泡排序示例 :原始序列: 5, 3 ,4 ,2 ,1...原创 2020-03-19 23:52:14 · 2570 阅读 · 0 评论