python数据结构算法包括什么_数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/1/

课程总结

课程的目标和意义

问题求解,算法和数据结构

主要数据结构

结构、性质和实现

重要算法

解决的问题/基本思想/实现细节

复习和考试

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/2/

课程的目标和意义

用计算的方式解决问题时,最基本的问题有两个

如何安排(组织)和管理好计算中需要处理的信息

如何设计出能够完成工作的计算过程

前者就是数据结构的问题,后者是算法问题

N.  Wirth

给出了著名的公式:算法

+  数据结构

=  程序设计

在理解了基本程序设计技术和所用工具(编程语言,这里是

Python)

之后,下一步的问题就是如何组织数据和设计算法

这些就是本课程的基本内容

作用:

掌握一些数据组织的基本技术,理解它们的性质

通过实例和讨论,了解一些基本算法和算法设计的基础知识

通过练习和大作业,取得在实际中应用计算解决问题的初步经验

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/3/

主要数据结构

本课程讨论的基本问题:

算法,数据结构,程序,Python

程序设计

时间复杂性,最坏情况,平均情况,分期付款式的复杂性

空间复杂性,最坏情况,平均情况

需要理解算法复杂性的意义

经常关心最坏情况时间复杂性,有时也关注平均时间复杂性

掌握简单的算法复杂性分析技术(加法规则和乘法规则).空间

复杂性一般更简单,通常可以从算法描述直接得到

讨论了

Python

的一些内部细节和高级编程技术,如?Python

类和面向对象程序设计

Python

内置数据结构的性质:list

和dict

Python

的一些编程技术,等等

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/4/

主要数据结构

典型的基本数据结构

线性表:简单线性结构

栈,队列,优先队列:用于保存中间信息的存储结构

树和二叉树:分层结构

图:元素间存在复杂关系的结构

散列结构(在顺序表基础上加一个散列函数)

一些结构有清晰的操作集合,如栈、队列、优先队列.其他结构有一批

基本操作,可根据需要扩充.常见操作:创建,检查(空/满判断等),

访问/设置/增/删元素,访问/使用元素间关系,修改结构等

数据结构的基本实现方式:

顺序:元素顺序排列,用排列顺序和位置表示元素间关系

链接:显式记录元素间的关系,利用动态存储管理的功能实现

复杂的数据结构常采用两种或多种方式的组合

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/5/

数据结构

复杂结构实例:

拉链法散列、邻接表:一个顺序表和一组链接表

动态顺序表:基本表示为顺序,利用链接的灵活性

实现结构的设计需要考虑:

各种基本操作的需要,使操作的实现方便

考虑操作效率和存储效率

数据结构的典型应用:字典和检索.目标:

最重要的考虑是提供高效的检索操作

支持高效动态操作,插入/删除.静态字典不考虑这方面

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/6/

重要算法

课程中仔细介绍了一批重要的基础算法,是本课程的重要内容.对一个

算法的功能和过程的理解,可分为三个层次:

该算法解决的问题,算法设计的基本思想

基本过程(能按算法描述的过程处理简单实例,得到相应的解)

理解和掌握算法实现细节,包括所需辅助数据结构,能编程实现

一些算法只要求理解基本思想和基本过程(前两层为考试要求):

字符串

KMP

匹配算法,

Huffman算法,几个图算法

需要理解算法的性质(优劣、比较)

时间复杂性和空间复杂性

有些问题存在复杂性低的算法,为什么复杂性较高的算法还用(实现复杂性/常量因子/其他性质/问题规模)

解决具体问题的算法可能有一些具体性质

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/7/

算法  重要算法

二叉树周游算法

宽度/深度优先搜索和周游

Huffman

算法、Huffman

树和  Huffman

编码  二叉排序树检索、插入和删除

堆的筛选算法,堆的构造

图的基本算法

最小生成树(Prim算法和Kruskal算法,解决同样问题)

最短路径(Dijkstra算法和Floyd算法,解决不同问题)

拓扑排序,关键路径

排序算法(一组算法,解决同一个问题)

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/8/

算法和数据结构总结

排序:一个重要问题,一些解决问题的想法,一批特征各异的算法

各种算法的基本思想,如:不断扩充已排序序列(插入正确位置,

选择合适元素);把大工作分解为部分(如何分,怎样由部分的结

果得到整体结果);基本过程(调整中的不变关系)

时间和空间复杂性(平均和最坏)

稳定性(什么是稳定性?意义何在?)

不同算法的特性:时间和空间复杂性、算法的复杂性,稳定性,适

应性  不作为考试要求的内容

最佳二叉排序树,图算法的复杂性(与实现细节有关.可以把算法

的复杂性定义为其最佳实现能达到的复杂性)

简单介绍的内容,如多分支排序树部分(包括

B  树和  B+  树)  数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/9/

复习/答疑/考试

考试时间是

1  月8日上午

两小时,闭卷

考试中只带必要的文具,带学生证

注意学校规定:迟到超过15分钟不得入场;开考30分钟后方可交卷

未经监考老师许可,不得离开自己的座位(交卷除外)

考前答疑

地点:理科一号楼

1479

教室  时间:

1  月6日,15-17点;1

月7日,9-11

和15-17

点?其他时间可以到我办公室

理科一号楼

1480

数据结构和算法(Python

语言版):总结

裘宗燕,2014-12-30-/10/

试题情况和要求

填空和选择.根据题目要求做

问答题,与基本的概念和技术有关的问题

可能要求给出简要的回答,或做一些分析/比较/讨论

操作题,如?根据定义和性质完成某些简单计算

手工完成一些操作,对具体实例说明算法的过程和结果

画图说明一些数据结构的情况

操作题应该有过程,说明如何得到结果

编程题,数据结构描述和算法实现,写出

Python

程序.注意:

需要说明程序处理的结构,相关的数据表示

应给出适当解释,尽可能写清楚,使改卷时容易辨认

综合题,可能包含上面几类题目的要素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值