数据结构与算法
chen_holy
“你要是愿意, 我就永远爱你”——王小波《爱你就像爱生命》
展开
-
学习笔记 - 数据结构:数组 实现自己的数组1(python版)
最简单的实现"""ps:每一行代码都有它的用意实现自己的数组1.不支持动态扩容 -- 创建对象的时候必须指定容量2.能实现中括号操作 -- 取值或赋值,不做下标约束3.支持 len4.支持 迭代5.find取值接口6.insert插入接口7.delete接口8.打印所有"""class MyArray: def __init__(self, capa...原创 2019-04-25 21:23:38 · 206 阅读 · 0 评论 -
笔记 - 数据结构与算法:顺序表
所以动态结构指的是能在表对象不改变的前提下对数据存储区域进行扩容的结构扩充的方式还有很多eg:每次增加当前容量的一半增加当前容量的3/4......原创 2019-07-01 10:00:00 · 209 阅读 · 0 评论 -
笔记 - 数据结构与算法:【算法的引入】如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?
算法优化带来效率的提高原创 2019-07-01 09:40:51 · 795 阅读 · 0 评论 -
笔记 - 数据结构与算法:Python列表不同操作的时间效率
list添加元素注:把 test 统一改成 tfrom timeit import Timer单纯的生成list,还是list(range())最快list相加的另外一种方式extend和[1]+[2] 即两个列表直接相加要慢但好像extend消耗空间少insert 与 append...原创 2019-07-01 09:15:05 · 243 阅读 · 0 评论 -
笔记 - 算法与数据结构:链表交换相邻元素
class LNode(): def __init__(self, data=None): self.x = data self.next = Nonedef swapPairs(head): pre = head while pre.next and pre.next.next: a = pre.next ...原创 2019-06-11 21:46:52 · 285 阅读 · 0 评论 -
笔记 - 算法与数据结构:反转链表
class LNode: def __init__(self, x=None): self.x = x self.next = Nonedef Reverse(first): cur, pre = first, None while cur: cur.next, pre, cur = pre, cur, cur.next...原创 2019-06-11 19:11:22 · 161 阅读 · 0 评论 -
学习笔记 - 数据结构 :约瑟夫环问题(python)
"""约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到k的那个人被杀掉;他的下一个人又从1开始报数,数到k的那个人又被杀掉;依此规律重复下去,直到圆桌周围的人只剩最后一个。"""if __name__ == "__main__": """ 当k是1的时候,存活的是最后一个人 当k>=2的时候,构...原创 2019-04-28 21:44:43 · 832 阅读 · 0 评论 -
学习笔记 - 数据结构:链表理论
总结数组与链表优缺点对比数组:优点:支持随机访问,读取数据快,单个元素消耗空间少缺点:引起大量数据迁移会耗费较多时间链表:优点:适合有序数据的插入与删除缺点:单个元素消耗空间多双向链表的优点:支持向前遍历循环链表的优点:更方便实现循环操作(如:约瑟夫问题)...原创 2019-04-28 20:48:12 · 168 阅读 · 0 评论 -
学习笔记 - 数据结构:数组
数组插入改进策略"""代码只实现想表达的逻辑数组插入的改进,实现插入的时间复杂度为O(1)"""# 在第k个位置上插入元素edef insert(array, e, k): length = len(array) array.insert(length, array[k-1]) # 这里只是模拟将元素迁移到末尾的操作 array[k-1] = e...原创 2019-04-24 08:52:41 · 182 阅读 · 0 评论 -
笔记 - 数据结构与算法:单向链表
要实现两个部分:结点对象链表对象假设需求:节点实现要存储数据要存储下一个节点位置class Node(): def __init__(self, item): self.item = item self.next = None单链表实现class SingleLinkList(): def __init__(self): self._head = No...原创 2019-07-01 11:25:30 · 199 阅读 · 0 评论