数据结构
数据结构
Hhaicl
hello world
展开
-
时间复杂度和大O记号
时间复杂度:运行一个程序的基本步骤的总数量。(这么理解比较直观吧,看他一共需要执行的步骤)Q:A,B,C,是1000以内的自然数,满足A+B+C=1000,A平方加B平方等于C平方。方法一:枚举法import timestart_time = time.time()for a in range(1001): for b in range(1001): for c ...原创 2018-11-15 15:21:56 · 758 阅读 · 0 评论 -
Python列表操作的时间复杂度比较
会用到的python模块:timeittimeit模块:准确测量小段代码的执行时间timeit模块中有三个函数,理解一个常用的计时器函数就好了:timeit.Timer(stmt='pass',setup='pass',timer=<timer function>)stmt:是指需要测量的语句或者函数setup:是初始化代码或构建环境的导入语句timer:是计时函数不用管它...原创 2018-11-15 16:12:19 · 2604 阅读 · 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 · 5319 阅读 · 0 评论 -
顺序表与单向链表
线性表两种实现模型:顺序表:将元素顺序地存放在一块连续的储存区里,元素间的顺序关系由他们的存储顺序自然表示。链表:将元素存放在通过链接构造起来的一系列储存块中。顺序表下图a,表示的是,相同数据类型的元素,按顺序排列存储的形式,可以根据前项的地址配合索引求出各项的地址,从而得到各项的数值。下图b,当数据类型不一致时,不同的数据类型所占的内存不一样,所以不能根据索引求出各项地址,如...原创 2018-11-15 22:14:05 · 332 阅读 · 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 · 108 阅读 · 0 评论