数据结构
数据结构
fff2zrx
这个作者很懒,什么都没留下…
展开
-
线性结构-栈的定义及实例
本文为学习数据结构与算法Python版的个人笔记 线性结构的定义 栈Stack是其中一种线性结构 栈的定义 栈的定义 栈的基本操作 栈的基本操作例子 栈的python实现 class Stack(object): def __init__(self): self.items=[] def isEmpty(self): return self.items==[] def push(.原创 2020-08-04 16:59:20 · 576 阅读 · 0 评论 -
排序算法(一) 冒泡排序-选择排序-插入排序
本文为学习数据结构与算法Python版的个人笔记 冒泡排序 冒泡排序即依次比对相邻两个数字,把大的放后面,这样第一趟下来,最大的数字位于最后一位,第二趟第二大的数字位于倒数第二位,一直到第n-1趟,最后两个数字确定次序。这样整个数组就排好序了。 算法复杂度为O(n),可以从比对和交换两方面来看: 比对方面,算法需要n-1趟,然后比对次数从n-1到1,所以比对次数是 12n2−12n\frac{1}{2} n_2-\frac{1}{2}n21n2−21n,比对的时间复杂度是O(n) 交换方面,时.原创 2020-08-26 20:40:54 · 170 阅读 · 0 评论 -
排序算法(二) 谢尔排序-归并排序-快速排序
本文为学习数据结构与算法Python版的个人笔记 希尔排序 希尔排序就是多个子列表的插入排序, 时间复杂度nlognnlog_nnlogn def shellSort(alist): gap=len(alist) while gap>=1: gap=gap//2 for i in range(gap): alist=sub_insertSort(alist,i,gap) return alist def sub_.原创 2020-08-29 15:06:20 · 263 阅读 · 0 评论 -
递归(一)递归的基本用法
本文为学习数据结构与算法Python版的个人笔记 递归的 进制转换 将整数转换为任意进制 def toStr(number,base): str_dict='0123456789ABCDEF' if number<base: return str_dict[number] x1=number//base x2=number%base return toStr(x1,base)+str_dict[x2] 才开始写的时候,明白用取整来减少规模.原创 2020-08-24 15:46:32 · 801 阅读 · 0 评论 -
递归(二)贪心策略-递归-动态规划
贪心策略 每次都试图解决问题的尽量大的一部分对应到兑换硬币问题,就是每次以最多数量的最大面值硬币来迅速减少找零面值。 这里不用循环,用递归写的话,我又跟在前面提到的一样,在如何把这些每一步递归的值联系起来犯迷糊,开始是想用一个全局变量,行不通(因为每一步递归是一个调用栈),后来是把一个列表也放到参数里,然后再return出来 # 贪心策略 def find_money(num,result): if num>=25: n=num//25 m=num%25 .原创 2020-08-24 16:59:49 · 280 阅读 · 0 评论