数据结构与算法python版笔记
文章平均质量分 61
追_光
这个作者很懒,什么都没留下…
展开
-
数据结构与算法python北大版笔记 - 树
树树结构相关术语节点Node:组成树的基本部分边Edge:边是组成树的另一个基本部分每条边恰好连接两个节点,表示节点之间具有关联,边具有出入方向;每个节点(除根节点)恰有一条来自另一节点的入边;每个节点可以有多条连到其它节点的出边。根Root:树中唯一一个没有入边的节点路径Path:由边依次连接在一起的节点的有序列表如:HTML->BODY->UL->LI,是一条路径子节点Children:入边均来自于同一个节点的若干节点,称为这个节点的子节点父节点Paren原创 2021-02-15 11:06:06 · 277 阅读 · 1 评论 -
数据结构与算法python北大版笔记 - 散列
散列使查找算法的复杂度降到O(1)散列表(哈希表)是一种数据集 ,其中数据项的存储方式尤其有利于将来快速的查找定位。散列表中的每一个存储位置,称为槽(slot),可以用来保存数据项,每个槽有一个唯一的名称。实现从数据项到存储槽名称的转换的,称为散列函数槽被数据项占据的比例称为散列表的 “ 负载因子“被分配到同一个槽中,这种情况称为“冲突collision”给定一组数据项,如果一个散列函数能把每个数据项映射到不同的槽中,那么这个散列函数就可以称为“完美散列函数”好的散列函数需要具备特性冲突最少(原创 2021-02-14 19:11:04 · 304 阅读 · 0 评论 -
数据结构与算法python北大版笔记 - 排序算法
排序冒泡排序优势:无需任何额外的存储空间开销。'''range(start, stop[, step])参数说明:start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)'''def bubbleSort(alist):原创 2021-02-10 11:46:00 · 265 阅读 · 0 评论 -
数据结构与算法python北大版笔记 - 查找算法
查找算法顺序查找无序表查找代码:def sequentialSearch(alist, item): pos = 0 found = False while pos < len(alist) and not found: if alist[pos] == item: found = True else: pos = pos + 1 return foundtestlist = [1原创 2021-02-10 10:02:29 · 211 阅读 · 1 评论 -
数据结构与算法python北大版笔记 - 动态规划
优化问题和贪心策略1.找零兑换问题:兑换最少个数的硬币问题贪心策略:从最大面值的硬币开始,用尽量多的数量有余额的,再到下一个最大面值的硬币,还用尽量多的数量,一直到penny($1)为止1)递归解法:首先确定基本结束条件,兑换硬币问题最简单直接的情况就是,需要兑换找零,其面值正好等于某种硬币。其次是减少问题的规模,对每种硬币尝试一次(如美元硬币体系):找零减去1分后,求兑换硬币最少数量找零减去5分后,求兑换硬币最少数量找零减去10分后,求兑换硬币最少数量找零减去25分后,求兑换硬币最少原创 2021-02-09 22:04:04 · 199 阅读 · 0 评论 -
数据结构与算法python北大版笔记 - 递归
递归数列求和def listsum(numList): if len(numList) == 1: return numList[0] else: return numList[0] + listsum(numList[1:])print(listsum([1,3,5,7,9]))#25递归三定律:递归算法必须有一个基本结束条件(最小规模问题的直接解决)递归算法必须能改变状态向基本结束条件演进(减小问题规模)递归算法必须调用自身(解决减小了规原创 2021-02-09 17:34:01 · 146 阅读 · 0 评论 -
数据结构与算法python北大版笔记 - 有序/无序列表
无序链表链表的实现1)节点Nodeclass Node: def __init__(self, initdata): self.data = initdata self.next = None def getData(self): return self.data def getNext(self): return self.next def setData(self, newdata):原创 2021-02-09 16:10:03 · 155 阅读 · 0 评论 -
数据结构与算法python北大版笔记 -队列
队列1.Python实现队列(ADT Queue) 采用List来容纳Queue的数据项 将List首端作为队列尾端,List末端作为队列首端,enqueue()复杂度为O(n),dequeue()复杂度为O(1)。(首尾倒过来实现,复杂度也倒过来)class Queue: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def原创 2021-02-09 15:37:13 · 167 阅读 · 0 评论 -
数据结构与算法python北大版笔记 - 栈
栈1.Python实现栈(ADT Stack)1)将List的末端(index=-1)作为栈顶class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): r原创 2021-02-09 12:41:40 · 203 阅读 · 0 评论