
python 数据结构和算法
文章平均质量分 66
python学习
weixin_43384009
抓住每次可以学习的机会
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
栈和栈的应用
栈1、数据结构2、列表3、栈4、栈的应用实例 1、数据结构 数据结构按照其逻辑结构可分为线性结构、树结构、图结构 线性结构:数据结构中的元素存在一对一的相互关系 树结构:数据结构中的元素存在一对多的相互关系 图结构:数据结构中的元素存在多对多的相互关系 2、列表 列表中的元素是顺序存储的,一块连续的内存 列表的基本操作:按下标查找(O(1))、插入元素(O(n))、删除元素(O(n))… 3、栈 栈(Stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表 栈的特点:后入先出(LI原创 2021-05-30 23:01:09 · 366 阅读 · 1 评论 -
列表排序2(快速排序、堆排序、归并排序)
列表排序21、快速排序 1、快速排序 快速排序:快 快速排序思路:取一个元素p(第一个元素),使元素p归位;列表被p分为两部分,左边都比p小,右边都比p大;递归完成排序。 时间复杂度:O(nlongn) def partition(li, left, right): tmp = li[left] while left < right: while left < right and li[right] >= tmp: # 从右边找比tmp小的数原创 2021-05-24 11:26:45 · 508 阅读 · 0 评论 -
递归及应用(汉诺塔问题)、列表查找、列表排序
@TOC 1、 递归 递归的两个特点:调用自身和结束条件 fun3和fun4的打印顺序不同 2、汉诺塔问题 n=2时的移动步骤: n个盘子时:将三个盘子从a移动到c def hanoi(n, a, b, c): """ :param n: 表示n个盘子 :param a: 表示从那个柱子移动 :param b: 表示经过那个柱子 :param c: 表示到那个柱子 :return: """ if n > 0: h原创 2021-05-21 11:40:14 · 564 阅读 · 0 评论 -
时间复杂度
时间复杂度和空间复杂度1、时间复杂度2、空间复杂度 1、时间复杂度 时间复杂度:用来评估算法运行效率的一个式子 一般来说,时间复杂度高的算法比复杂度低的算法慢 常见的时间复杂度:O(1)<O(logn)<O(n)<O(n的平方)<O(n的平方logn)<O(n的三次方) 复杂问题的事件复杂度:O(n!) O(2的n次方) O(n的n次方) O(1)表示执行一次 快速片段算法的时间复杂度: 确定问题规模n 循环减半过程:logn k层关于n的循环:n的k次 复杂情况:根据算法直原创 2021-05-18 23:32:10 · 176 阅读 · 0 评论