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