美文网首页
Python数据结构 第二章--算法分析

Python数据结构 第二章--算法分析

作者: minningl | 来源:发表于2017-07-01 13:38 被阅读63次

本章节主要内容:

一、了解为何算法分析的重要性

二、用大“O”表示法来描述算法执行时间

三、了解在Python列表和字典类型中通用操作用大“O”表示法表示的执行时间

四、了解Python数据类型的具体实现对算法分析的影响

五、了解如何对简单的Python程序进行执行时间检测

主要知识点如下:

1)算法分析主要就是从计算资源的消耗的角度来评判和比较算法。我们想要分析两种算法并且指出哪种更好,主要考虑的是哪一种可以更高效地利用计算资源。或者占用更少的资源。

2)一种简单的计算程序时间复杂度的方式就是通过统计程序运行的时间来进行比较,在python中有一个time模块,通过调用time的time函数来获取时间,在程序运行开始和结尾时分别调用这个函数就可以获知程序的运行时间。

3)有时候对于同一个任务,采用不同的计算方法产生的结果相同但是时间消耗却差别很大,举个例子,计算1+2+3+...n

方法一:

def sum1(n):

    sum = 0

    for i in range(n):

        sum += i

    return sum

方法二:

def sum2(n):

    sum = n*(n-1)/2

    return sum

在上边两个方法中随着n的增大,sum2运行时间没有变大,而sum1的运行时间越来愈大。

在后面我们可以知道,sum1的运行时间为1+n,因此时间复杂度是O(n)

sum2的运行时间为1,因此其时间复杂度为O(1)

(4)Python中列表是一个很常用的数据结构,在列表中有一个pop方法对列表进行pop元素操作,ls.pop(n)移除ls中第n个元素并返回移除的元素,pop()默认移除最后一个元素,pop(0)移除第一个元素。

pop()的时间复杂度是O(1)

pop(0)的时间复杂度是O(n)

列表常用时间复杂度表对照

(5)Python中字典是一个很常用的数据结构。那么字典中的操作的时间复杂度是怎么样的呢,由于字典是通过key来访问元素,其访问和赋值都是O(1)的时间复杂度。

字典常用操作复杂度

相关文章

  • 个人 Python 书单

    入门: Beginning Python 数据结构: Python 数据结构 算法: Python 算法教程

  • 如何学习数据结构与算法

    算法学习经验 推荐: 入门: 数据结构启蒙:《数据结构与算法分析——C 语言描述》 算法启蒙:《算法设计与分析基础...

  • 最近的数据学习计划

    学习方向 - 代码能力训练(持续少量) pat训练 熟悉python编程语句 数据结构,算法导论 - 分析工具训练...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 数据结构与算法参考书籍

    数据结构与算法分析 算法 算法导论 java编程思想

  • 长期计划安排

    一、数据结构与算法分析 参考书 数据结构与算法分析:C语言描述 算法(第四版) 算法导论 课程相关 MOOC 邓俊...

  • python数据结构与算法总结

    python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: 《数据结构和算法对pyth...

  • 现在开始还算晚吗?

    半年学习计划: 编程技巧提高:C/C++ PYTHON为主要 数据结构 数据库学习 机器学习 算法 数据挖掘分析 ...

  • python数据结构教程 Day5

    python数据结构教程 Day5 本节重点: 有序表 链表实现list的算法分析 线性结构小结 一、有序表 1、...

  • 10.数据结构和算法 初识

    1、数据结构与算法(Python) 数据结构和算法是什么?答曰:兵法! 1.1算法的概念 算法是计算机处理信息的本...

网友评论

      本文标题:Python数据结构 第二章--算法分析

      本文链接:https://www.haomeiwen.com/subject/kumwcxtx.html