
数据结构
数据结构
Hhaicl
hello world
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
时间复杂度和大O记号
时间复杂度:运行一个程序的基本步骤的总数量。(这么理解比较直观吧,看他一共需要执行的步骤) Q:A,B,C,是1000以内的自然数,满足A+B+C=1000,A平方加B平方等于C平方。方法一:枚举法 import time start_time = time.time() for a in range(1001): for b in range(1001): for c ...原创 2018-11-15 15:21:56 · 838 阅读 · 0 评论 -
Python列表操作的时间复杂度比较
会用到的python模块:timeit timeit模块:准确测量小段代码的执行时间 timeit模块中有三个函数,理解一个常用的计时器函数就好了: timeit.Timer(stmt='pass',setup='pass',timer=<timer function>)stmt:是指需要测量的语句或者函数setup:是初始化代码或构建环境的导入语句timer:是计时函数不用管它...原创 2018-11-15 16:12:19 · 2720 阅读 · 0 评论 -
列表与字典操作的时间复杂度
列表内置函数时间复杂度: index[]索引 O(1) index[]索引修改 O(1) append O(1) pop O(1) pop(i) O(n) insert(i,item) O(n) del operator ...原创 2018-11-15 16:46:33 · 5398 阅读 · 0 评论 -
顺序表与单向链表
线性表两种实现模型: 顺序表:将元素顺序地存放在一块连续的储存区里,元素间的顺序关系由他们的存储顺序自然表示。 链表:将元素存放在通过链接构造起来的一系列储存块中。 顺序表 下图a,表示的是,相同数据类型的元素,按顺序排列存储的形式,可以根据前项的地址配合索引求出各项的地址,从而得到各项的数值。 下图b,当数据类型不一致时,不同的数据类型所占的内存不一样,所以不能根据索引求出各项地址,如...原创 2018-11-15 22:14:05 · 429 阅读 · 0 评论 -
排序算法
写在前面! 排序的稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的。 冒泡排序(稳定) def bubble_sort(alist): '''冒泡排序''' n = len(alist) ...原创 2018-11-20 22:00:09 · 158 阅读 · 0 评论