- 博客(21)
- 收藏
- 关注
原创 Python数据结构21:动态规划:有负重限制的最大价值问题:博物馆大盗问题的动态规划解法和递归解法
有负重限制的最大价值问题的动态规划解法和递归解法
2022-10-17 12:33:48 968 1
原创 Python数据结构19:找零兑换问题的递归解法,用表保存当前最优,避免重复计算的方法
递归算法解决找零问题,用列表保存中间最优解,减少程序运行时间
2022-09-29 09:57:49 879 1
原创 Python数据结构15:turtle模块制图,画直线,正方形,星星,递归可视化:分形树,谢尔宾斯基三角形
讲解turtle画图的方法递归实现分形树和谢尔宾斯基三角形的原理和代码
2022-08-03 09:39:55 2218
原创 Python数据结构14:递归的原理,递归实现数列求和、求阶乘、十进制转为任意进制
递归的概念,思想,原理。递归的应用:数列求和、阶乘、十进制转换为其他进制。
2022-06-22 11:54:59 3072
原创 Python数据结构13:散列(哈希)表,完美散列函数,解决冲突方法,开放寻址,负载因子,平均查找次数
散列表的概念。散列表的实现。开放寻址散列表。数据项链列表实现
2022-03-26 15:49:57 4063 2
原创 Python数据结构10:图,代码表示,DFS、BFS,拓朴排序,迪杰斯特拉,最小生成树,关键路径
图的定义图的算法:DFS, BFS, 拓扑排序, 迪杰斯特拉等
2022-03-12 11:52:53 1916
原创 Python数据结构9:查找,顺序查找解法,二分查找(和递归算法求解)
顺序查找的代码和解法二分查找的代码和解法参考文献本文的知识来源于B站视频 【慕课+课堂实录】数据结构与算法Python版-北京大学-陈斌-字幕校对-【完结!】,是对陈斌老师课程的复习总结。...
2022-02-16 17:58:06 1259
原创 Python数据结构8:链表实现有序表,有序表的查找和增加,链表算法分析,顺序存储
1.有序表OrderedList1.1 定义有序表是一种数据项依照其某可比性质(如整数大小、字母表先后)来决定在列表中的位置越“小”的数据项越靠近列表的头,越靠“前”2. Python中的有序表OrderedList2.1 定义OrderedList所定义的操作如下:OrderedList():创建一个空的有序表add(item):在表中添加一个数据项,并保持整体顺序,此项原不存在remove(item):从有序表中移除一个数据项,此项应存在,有序表被修改search(item):在
2022-02-10 15:13:56 1879
原创 Python数据结构7:无序表,链表对象增删查,链表结点,代码实现
1. 列表:1.1 定义:列表是一种数据项按照相对位置存放的数据集无序表unordered list是指数据项之间没有顺序的列表如一个考试分数的集合“54, 26, 93, 17, 77和31”用无序表来表示,就是[54, 26, 93,17, 77, 31]2. Python中的无序表List2.1 定义List由如下操作定义,为了简单起见,假设表中不存在重复数据项:List():创建一个空列表add(item):添加一个数据项到列表中,假设item原先不存在于列表中remove(
2022-02-10 11:52:00 1014
原创 Python数据结构6:队列概念和实现,双端队列概念和实现,判断回文词方法,热土豆(约瑟夫)算法,模拟打印机
1. 队列的概念和性质1.1 定义:队列是一种有次序的数据集合,其特征是新数据项的添加总发生在一端(通常称为“尾rear”端)而现存数据项的移除总发生在另一端(通常称为“首front”端)当数据项加入队列,首先出现在队尾,随着队首数据项的移除,它逐渐接近队首。1.2 性质:FIFO First-in first-out 先进先出:新加入的数据项必须在数据集末尾等待,而等待时间最长的数据项则是队首队列仅有一个入口和一个出口:不允许数据项直接插入队中,也不允许从中间移除数据项1.3
2022-02-10 10:02:53 1327 1
原创 Python数据结构5:栈,代码实现栈,括号匹配算法,中缀表达式转后缀表达式算法,后缀表达式求值算法,十进制转换为二进制算法
1参考文献本文的知识来源于B站视频 【慕课+课堂实录】数据结构与算法Python版-北京大学-陈斌-字幕校对-【完结!】,是对陈斌老师课程的复习总结
2022-02-07 12:00:17 1170
原创 Python数据结构4:线性结构的定义和性质,重点知识总结
1.线性结构1.1定义: 线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继。1.2线性结构的性质:第一个没有前驱,最后一个没有后继新的数据项加入到数据集中时,只会加入到原有某个数据项之前或之后不同线性结构的关键区别在于数据项增减的方式有的结构只允许数据项从一端添加,而有的结构则允许数据项从两端移除1.3四种最重要的线性结构:栈Stack队列Queue双端队列Deque列表List这些数据集的共同点在于,数据项之间只存在先后的次序关系,都是线性结构参考文献
2022-01-30 12:01:21 1321
原创 Python数据结构3:list的内置函数算法复杂度,刷算法题的注意事项,输入输出格式
1.Python数据类型list和dict非常重要2.list列表操作的算法复杂度列表增长:list.append(v) # O(1) 因此用这个方法更好一些list = list + [v] # O(n + k)3.list基本操作的算法复杂度参考文献本文的知识来源于B站视频 【慕课+课堂实录】数据结构与算法Python版-北京大学-陈斌-字幕校对-【完结!】,是对陈斌老师课程的复习总结...
2022-01-30 11:47:41 1672
原创 Python数据结构2:变位词判断,写bool函数判断两个词是否为变位词并分析算法复杂度
题目:写bool函数判断两个词是不是变位词变位词: 字母完全相同(大小写也相同),但是顺序不同的词。如 python , typhon. heart , earth, 为了简单起见,本题假设参与判断的两个词仅由小写字母构成,而且长度相等,因为长度不等一定不是变位词1. 解法1:逐个字母比较遍历第一个词中的每个字母,逐个在第二个词中找相同的字母,找到时,将第二个词中此字母设置位None避免重复,当第二个词全是None时,他们时变位词,否则不是def anagramSolution1(wo
2022-01-30 11:11:10 1534
原创 Python数据结构1:算法复杂度做算法分析:大O表示算法
评价算法好坏的指标1.计算资源指标1.1 存储空间或内存 由于不好区分是数据本来就需要很大的空间,还是由于算法太垃圾占用了太多的空间。所以通常不用这个描述。1.2 算法执行时间 通常用这个描述计算资源指标在python中可以用time模块统计运行时间。time.time()是系统的时间。import timestart = time.time()需要执行的程序end = time.time()print(end - start)end - start 就是程序运行的时间。通常我们
2022-01-30 09:03:07 253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人