![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 76
BytePig
"凡墙皆是门"
展开
-
字符串匹配算法加速-KMP
数据结构学习总结: 一、KMP简介 kmp算法,也就是用于字符串匹配中的一种算法。(即解决一个主串中是否包含给定子串) 普通暴力解法:在两个字符串匹配过程中,当遇到不匹配时,匹配串需要往后挪一位,从头开始重新再匹配。时间复杂度为O(N*M) (N为主串的长度,M为匹配串的长度) 而KMP算法,是为了在不匹配的时候,能让匹配串多往后挪几位。加速匹配。将时间复杂度降为O(N) 二、代码实现 2.1 思路: (1) 首先要理解一个概念。 即=》某一个字符的前缀和后缀匹配的最长长度。 假设子串为abca原创 2020-07-23 20:32:30 · 376 阅读 · 0 评论 -
回溯算法-不断回头又前进,只为找到最好的
学习总结-来自《极客时间-数据结构与算法之美 》 文章目录回溯算法回溯的理解案例1:八皇后棋盘案例2:背包问题 回溯算法 回溯的理解 解决一个问题,可分为几个阶段。每个阶段都有不同的选择。 比如当前所在阶段有A1,B1,C1 3种选择。当前阶段选择A,进入下一个阶段,又是同样面临A2,B2,C2 3中选择,这个阶段选择B2,进入下一阶段。发现选择B2不符合最后的结果,返回上阶段,重新选择C2,然...原创 2020-03-29 10:21:35 · 148 阅读 · 0 评论 -
贪心算法
学习总结:来自极客时间《数据结构与算法之美》 文章目录1 贪心算法适用场景案例1 :分饼干案例2 :钱币找零 1 贪心算法 “在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解” 适用场景 (1) 在一组数据中,定义了限定值和期望值。希望从中选出数据,在满足限定值的条件下,期望值最大。 (2) 在当前选择下,在对限定值有...原创 2020-03-28 11:20:04 · 86 阅读 · 0 评论 -
二分法学习-几种变形的二分法
文章目录情景1:给定已排序好的数据(无重复值),找到给定的key值情景二:查找第一个值等于给定值的元素的下标(nums数组有重复数据)情景三:查找最后一个值等于给定值的元素的下标(nums数组有重复数据)情景四:查找第一个大于等于给定值的元素(nums数组有重复数据)情景五:查找最后一个小于等于给定值的元素(nums数组有重复数据) 情景1:给定已排序好的数据(无重复值),找到给定的key值 代...原创 2020-03-23 07:13:53 · 152 阅读 · 0 评论 -
基础排序算法(2)——桶排序/计数排序
学习总结,如有错,望指正,谢谢~~~ 一 桶排序 思路:将一组数据分到几个有序的桶中,每个桶再单独进行排序。然后从同种依次取出数据,结果便是有序的。 图示 ...原创 2020-03-21 10:06:37 · 92 阅读 · 0 评论 -
基础排序算法(1)-冒泡排序/插入排序/选择排序/归并排序/快速排序
几种基础排序算法及其比较 1.冒泡排序 2.插入排序 3.选择排序 4.归并排序 5.快速排序 6.计数排序 1 冒泡排序 思路(从小到大): (1)假设数据长度为N。总共要排序N-1轮。 (2)在每一轮排序中。相邻两个元素之间进行比较。不符合排序顺序的两个进行位置交换。每一轮结束后。教大的元素都被移到了最右侧。 冒泡思路示意图 代码示意 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示...原创 2019-11-03 11:53:39 · 305 阅读 · 0 评论