![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 91
清榎
不积跬步无以至千里
展开
-
KMP算法解析
KMP算法的用途:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。所以如何记录已经匹配的文本内容,是KMP的重点,也是next数组需要完成的任务。1. 前缀表(1)之前在学数据结构的时候只是会算next数组,但是对于next数组一直不理解。到底next数组是什么?next数组其实就是一个前缀表。(2)前缀表又是用来干啥的呢?前缀表是用来回退的,它记录了模式串与主串不匹配的时候,模式串应该从哪里开始重新匹配。(3)前缀表又是如何记录的?原创 2022-03-23 16:16:13 · 2150 阅读 · 1 评论 -
算法设计与分析之减治法
减治法的主要思想是将一个比较复杂的原问题转为规模更小的子问题,然后求解子问题,最后再由子问题和原问题的关系得出原问题的解。减治法主要分为三类,一类是减一个常量(通常为1),一类是减常因子,一类是减去可变规模。(一)减一个常量较为典型的有两个问题,第一个是插入排序,插入排序在使用减治法时是自底向上进行的,首先从第一个元素开始,一个一个元素进行插入,知道所有元素均已排好序为止。第...原创 2019-06-09 11:32:21 · 4014 阅读 · 0 评论