背景知识

1.数组是一种线性表结构,其用一块连续的内存空间,来存储一组具有相同类型的数据;
2.时间复杂度,也叫做渐进时间复杂度,通常用大O公式书写,表示代码的执行时间随数据规模增长的变化趋势,而非真正的执行时间。因此大O关注的是变化趋势。

常见的时间复杂度高低排序:
O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n²logn)<O(n³)<O(2ⁿ)<O(n!)<O(nⁿ)

list内置操作的时间复杂度:

列表相加

append  n

extend

列表生成式

range生成

# ('concat ', 1.7890608310699463, 'seconds')
# ('append ', 0.13796091079711914, 'seconds')
# ('comprehension ', 0.05671119689941406, 'seconds')
# ('list range ', 0.014147043228149414, 'seconds')

都是考虑最坏情况:例如需要指定位置pop可能为Pop(0),也有可能是pop(n-1),所以为O(n)

O(k): k = y - x 其实是常数

删除:需要把后面的元素往前移

列表设置切片:n+k ,切片+移动元素

需要记住的:

O(1):索引,队尾添加(index,append,尾部pop)

O(n):任意位置弹出、插入,查找(任意位置pop,insert)

通过分析可以发现,列表不太适合做元素的遍历、删除、插入(insert)等操作,对应的时间复杂度为O(n);访问某个索引的元素、尾部添加元素或删除元素这些操作比较适合做,对应的时间复杂度为O(1)。

数据结构

特定的数据结构和始于用他的方法叫做抽象数据类型;

规定数据怎样保存 —— 这些数据支持哪些操作,先把接口定义出来(先不管操作具体怎么实现)

tips:

timeit模块:

timeit模块可以用来测试一小段Python代码的执行速度

from timeit import Timert1 = Timer("test1()", "from __main__ import test1")## stmt参数:'test()'是要测试的代码语句(statment)## setup:"from __main__ import test1" 是运行代码时需要的设置;## timer参数是一个定时器函数,与平台有关。print("concat ",t1.timeit(number=1000), "seconds")

​​​​​​​

黑马 Python 数据结构与算法第一章相关推荐

  1. 数据结构与算法 --- 第一章 绪论

    数据结构与算法 第一章 绪论 1. 作者的话 2. 为什么要学习数据结构与算法 3. 数据结构与算法的作用 4. 数据结构的概念 4.1 名词解读 4.2 什么是数据 4.3 数据结构 4.4 逻辑结 ...

  2. PTA数据结构与算法-第一章——褚论

    文章目录 第一章--褚论 第二章--线性表 第三章--栈与队列 第四章--字符串 第五章--树与二叉树 第六章--图 第七章--排序 第八章--检索 判断题 单选题 程序填空题 第一章--褚论 第二章 ...

  3. 数据结构和算法 第一章 综述(1)

    数据结构和算法能起到什么作用 数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排.数据结构包括数组,链表,栈,二叉树,哈希表等等.算法对这些结构中的数据进行各种处理,例如,查找一条特殊的数据项 ...

  4. 数据结构与算法——第一章——绪论

    1.2数据结构的概念 1.2.1基本概念和术语 1.数据 是信息的载体,是所有能够被计算机识别.存储和加工处理的符号的总称. 是计算机程序加工的原料. 可以是数值数据(整数.实数.复数),也可以是非数 ...

  5. 清华大学-邓俊辉MOOC数据结构与算法-第一章

    第一节 1.计算 对象:规律.技巧 目标:高效.低耗 例子 绳索计算机及其算法 尺规计算机及其算法 总结 计算 = 信息处理 计算模型 = 计算机 = 信息处理工具 算法,即在特定计算模型下,旨在解决 ...

  6. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  7. 视频教程-Python数据结构与算法面试(上)-Python

    Python数据结构与算法面试(上) 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1 ...

  8. Python天天美味(32) - python数据结构与算法之堆排序

    1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data):     for i in ran ...

  9. Python数据结构与算法(1.7)——算法分析

    Python数据结构与算法(1.7)--算法分析 0. 学习目标 1. 算法的设计要求 1.1 算法评价的标准 1.2 算法选择的原则 2. 算法效率分析 2.1 大 OOO 表示法 2.2 常见算法 ...

  10. Python数据结构与算法(1.1)——数据结构与算法导论

    Python数据结构与算法(1.1)--数据结构与算法导论 0. 学习目标 1. 数据结构概述 1.1 什么是数据结构 1.2 逻辑结构和物理结构 1.3 抽象数据类型 1.4 数据结构学习的必要性 ...

最新文章

  1. 如何在内嵌 css 中编写: hover_优秀 CSS 代码的 8 个编写技巧!
  2. 02_Mybatis动态代理
  3. Java - 死锁 Dead Lock 定位分析
  4. pycharm 运行.py文件如何像控制台那样传参?
  5. int、bigint、mediumint、smallint、tinyint的比较
  6. Python 装饰器详解(上)
  7. 表格在拟合曲线找点_【无机纳米材料科研制图——OriginLab 0208】Origin拟合SERS拉曼光谱...
  8. 数字人民币如何操作使用?
  9. java中的subString与SQL中的subString(作为常识应该记住的)
  10. java getchild_Java IFileStore.getChild方法代碼示例
  11. 《反欺骗的艺术》读后感
  12. idea json转对象(Java实体类)
  13. nnet3-compute计算chain前向传播概率矩阵(声学模型输出)
  14. c++中string 各种函数的函数用法
  15. C++ 1179:奖学金
  16. Office 2010安装1402错误
  17. 稻盛和夫—《活法》读后感
  18. 一文了解RoaringBitmap
  19. AutoCAD系统变量和环境变量
  20. 劳动仲裁委员会的具体地址即(朝阳区酒仙桥南十里居28楼的具体路线)______转...

热门文章

  1. CDR服装设计-旗袍款式图
  2. 学习Java可以干什么?
  3. video.js的简单用法
  4. Linus 没空实现的功能,开发者做到了:苹果 M1 Mac 成功运行原生 Linux!
  5. mysql中日期相减_一篇文章,搞定Excel表格中日期计算,内含公式详解!
  6. ubuntu20.04设置静态IP地址
  7. 爱快服务器怎么重置系统,爱快软路由 备份设置以及恢复备份设置教程-路由器怎么恢复出厂设置...
  8. 通过路由器设置,不用IPTV盒子,局域网内、局域网外任意设备随时随地观看网络电视直播
  9. 【脚本解析笔记】文件批量重命名
  10. 上海房屋租赁合同登记备案证明办理流程