- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 Python实现KMP算法-字符串匹配和查找
《大话数据结构》一书第五章介绍了字符串的定义、存储结构和模式匹配算法。关于模式匹配,重点介绍了暴力(Brute-Force)算法和KMP算法,暴力算法较为简单,但性能较低。KMP算法在暴力算法基础上,通过特别巧妙的方式,降低了字符串比较次数,将时间复杂度从O((n-m+1)*m)降低到了O(n+m)。但是!!!这本书中关于KMP算法的介绍冗长、混乱,讲解的不够透彻,只讲其一,不讲其二,非常不便于理解。在反复阅读和理解消化了几个小时后,发现对KMP算法还是不能了然于胸。因此在网上查阅了相关资料,个人感觉讲
2021-07-24 11:43:40 440 4
原创 Python基于链表结构实现链队列Queue
上一篇文章介绍了循环队列的顺序存储结构的实现,Python基于顺序结构实现循环队列Queue。本文参考《大话数据结构》4.13一节,基于链表结构实现了链队列。对于循环队列与链队列的比较,《大话数据结构》中有很好的介绍:对于循环队列与链队列的比较,可以从两方面来考虑:从时间上,其实它们的基本操作都是常数时间,即都为O(1)的,不过循环队列是事先申请好空间,使用期间不释放,而对于链队列,每次申请和释放结点也会存在一些时间开销,如果入队出队频繁,则两者还是有细微差异。对于空间上来说,循环队列必须有一
2021-07-18 11:41:58 424
原创 Python基于顺序结构实现循环队列Queue
参考《大话数据结构》4.12一节,基于顺序结构实现了循环队列。class SeqQueue(object): def __init__(self, size=10): self.MAXSIZE = size self.data = [' '] * size self.front = 0 # 头指针 self.rear = 0 # 尾指针 def __len__(self): return (self.re
2021-07-18 10:01:11 636
原创 Python下基于栈和逆波兰算法实现四则运算
参考《大话数据结构》一书4.9节,Python下基于栈和逆波兰算法实现四则运算。栈的实现使用顺序结构,即基于列表实现,参考本人博客Python实现顺序结构栈Sequence Stack中缀转换后缀采用逆波兰算法,参考本人博客Python利用栈将中缀表达式转换为后缀表达式(四则运算)。计算代码如下所示(transform函数见上述 2.Python利用栈将中缀表达式转换为后缀表达式(四则运算)):def arithmetic(expression): signs = '+-*/'
2021-07-17 22:51:26 415
原创 Python利用栈将中缀表达式转换为后缀表达式(四则运算)
参照《大话数据结构》一书4.9节,基于Python实现了中缀表达式到后缀表达式的转换。栈的实现使用顺序结构,即基于列表实现,与本人博客Python实现顺序结构栈Sequence Stack一致。class SeqStack(object): def __init__(self, size=10): self.__MAXSIZE = size # 将MAXSIZE定义为私有变量,禁止子类对象访问 self.__data = [' '] * size # 将dat
2021-07-17 21:36:19 796
原创 Python使用循环和递归实现斐波那契数列
基于Python实现斐波那契数列。方法一:使用循环,通过yield生成器返回结果,使用时通过list转换为列表。这种方法效率更高,占用空间较小;方法二:使用递归实现,效率很低,占用内存较高。n=40时,方法一耗时不足1s,方法二耗时68s。import timedef fib(n): a = 0 b = 1 for i in range(n): yield b a, b = b, a + bdef fib_recursive(n):
2021-07-17 19:30:41 2275
原创 Python实现链栈 Link Stack
"""Python实现链栈by 勤奋的清风 at 2021-07-17"""class Node(object): def __init__(self, value=None, next_node=None): self.value = value self.next = next_node def set_value(self, value): self.value = value def set_next(self,
2021-07-17 18:31:50 608
原创 Python实现顺序结构栈Sequence Stack
参考大话数据结构,利用Python3实现了栈的顺序结构。class SeqStack(object): def __init__(self, size=10, elem_type=int): self.__MAXSIZE = size # 将MAXSIZE定义为私有变量,禁止子类对象访问 self.type = elem_type self.__data = [elem_type] * size # 将data定义为私有变量,禁止子类对象访问
2021-07-17 13:04:28 292
python利用百度地图API进行地理编码(将地名转换为经纬度)
2017-05-20
tensorflow----tf_upgrade.py
2017-03-14
python实现kaggle中的数字识别
2016-12-28
c++实现huffman哈夫曼编码
2016-10-27
快速排序+归并排序+c++
2016-10-27
道格拉斯普克算法的C++实现
2016-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人