![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 54
mashuangwe
这个作者很懒,什么都没留下…
展开
-
堆排序
从下到上循环建立最小堆原创 2017-08-08 07:45:17 · 227 阅读 · 0 评论 -
从长度为M的无序数组中找出N个最大的数
1、将数组前N个数调整成最小堆 2、堆顶元素值依次与第N个元素以后的每个元素进行比较 3、若堆顶元素值小,则将堆顶元素重新赋值为新元素的值,并且将前N个数重新调整为最小堆;否则判断下一个元素 4、直到遍历完原数组的最后一个元素后,则最小堆中的元素即为待求的数组中的N个最大的数 复杂度为O(M*log(N)) python代码: # -*- coding: utf-8 -原创 2017-08-08 21:26:12 · 4990 阅读 · 0 评论 -
找长字符串中的最长回文
Manacher算法 复杂度O(N) Python代码: # -*- coding: utf-8 -*- # manacher算法,求出字符串中的最长回文半径,复杂度为O(N) s = list('aaaaaassaaaaa') print len(s) s.insert(0, '$') for i in range(1, 2 * len(s), 2): s.insert原创 2017-08-12 22:50:53 · 222 阅读 · 0 评论