![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
数据结构
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 · 583 阅读 · 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 · 203 阅读 · 0 评论 -
排序算法(二) 谢尔排序-归并排序-快速排序
本文为学习数据结构与算法Python版的个人笔记希尔排序希尔排序就是多个子列表的插入排序,时间复杂度nlognnlog_nnlogndef shellSort(alist): gap=len(alist) while gap>=1: gap=gap//2 for i in range(gap): alist=sub_insertSort(alist,i,gap) return alistdef sub_.原创 2020-08-29 15:06:20 · 269 阅读 · 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 · 809 阅读 · 0 评论 -
递归(二)贪心策略-递归-动态规划
贪心策略每次都试图解决问题的尽量大的一部分对应到兑换硬币问题,就是每次以最多数量的最大面值硬币来迅速减少找零面值。这里不用循环,用递归写的话,我又跟在前面提到的一样,在如何把这些每一步递归的值联系起来犯迷糊,开始是想用一个全局变量,行不通(因为每一步递归是一个调用栈),后来是把一个列表也放到参数里,然后再return出来# 贪心策略def find_money(num,result): if num>=25: n=num//25 m=num%25 .原创 2020-08-24 16:59:49 · 287 阅读 · 0 评论