抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

RabinKarp(RK)算法

RK算法 O(n) go语言官方库(大部分情况) 其实朴素的字符串匹配算法(一个一个比对), 在概率上也是O(n)的。因为出现连续字符的情况是比较少的(e.g. aaaaab) RK算法的基本思路: 先用哈希做一个粗略比对。当然是存在一定误判的, 当哈希匹配时再使用朴素算法判断。如此一来每次字符串比对就变成了一个整数的比对。 但是问题的关键是, 哈希算法的开销的O(n)的, 我们要考虑如何...

算法的内省

Abstract工程实战中使用的算法往往都不是完整的某个算法, 他们会”智能”地根据实际情况选择适合的解法。比如说快速排速中会在数量少的时候使用插入排序, 并且将完全的递归实现改为半递归的实现(递归到一定深度后使用别的算法)。又比如在做二分查找边界条件的处理比较麻烦, 那就在快到达边界条件时使用朴素算法保证正确。 考虑最坏的情况也能有比较好的性能 动态检测 top ktop k的内省改造...