SlideShare uma empresa Scribd logo
1 de 54
关于教材 主教材 王红梅 . 数据结构( C ++版) . 清华大学出版社 辅导及实验教材 王红梅 . 数据结构学习辅导与实验指导 . 清华大学出版社 参考教材 1.  严蔚敏 . 数据结构 . 清华大学出版社 .1997 2.  王晓东 . 数据结构与算法设计 . 电子工业出版社 .2002 3.  曹宏庆译 . 如何求解问题 . 中国水利水电出版社 .2003
课程性质 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
学习目标 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
学习要求 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
如何使用立体化教材 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
成绩组成 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
第  1  章  绪  论 ,[object Object],[object Object],[object Object],[object Object],本章的基本内容是:
1938 年出生, 25 岁毕业于加州理工学院数学系,博士毕业后留校任教, 28 岁任副教授。 30 岁时,加盟斯坦福大学计算机系,任教授。从 31 岁起,开始出版他的历史性经典巨著: The Art of Computer Programming 他计划共写 7 卷,然而出版三卷之后,已震惊世界,使他获得计算机科学界的最高荣誉图灵奖,此时,他年仅 36 岁。 数据结构的创始人——克努思
1.1  数据结构的兴起和发展   程序设计的实质是什么 ? 数据表示: 将数据存储在计算机中 数据处理: 处理数据,求解问题 数据结构问题起源于程序设计
[object Object],[object Object],1.  无结构阶段 2.  结构化阶段:数据结构+算法=程序 3.  面向对象阶段: (数据结构+算法)=程序 1.1  数据结构的兴起和发展
1.2  数据结构的研究对象 ,[object Object],[object Object],[object Object],[object Object],[object Object]
例 1  学籍管理问题——表结构 1.2  数据结构的研究对象 学号 姓名 性别 出生日期 政治面貌 0001 王  军 男 1983/09/02 团员 0002 李  明 男 1982/12/25 党员 0003 汤晓影 女 1984/03/26 团员 … … … … … 完成什么功能 ? 各表项之间是什么关系?
例 2  人机对弈问题——树结构 1.2  数据结构的研究对象 如何实现对弈 ? 各格局之间是什么关系? …… …… .. …… . . …… … ... ……
例 3  教学计划编排问题——图结构 1.2  数据结构的研究对象 C 4 , C 5 , C 6 数据库原理 C 7 C 2 ,   C 4 计算机原理 C 6 C 3 , C 4 数据结构 C 5 C 1 , C 2 程序设计 C 4 C 1 离散数学 C 3 无 计算机导论 C 2 无 高等数学 C 1 先修课 课程名称 编号 C 1 C 2 C 3 C 4 C 6 C 5 C 7 如何表示课程之间的先修关系?
数据结构是研究 非数值 问题中计算机的 操作对象 以及它们之间的 关系 和 操作 的学科。 1.2  数据结构的研究对象
1.3  数据结构的基本概念 数据 :所有能 输入 到计算机中并能被计算机程序 识别和处理 的符号集合。 数值数据:整数、实数等 非数值数据:图形、图象、声音、文字等   数据元素 :数据的 基本 单位,在计算机程序中通常作为一个 整体 进行考虑和处理。 数据项 :构成数据元素的不可分割的最小单位。 数据对象 :具有相同 性质 的数据元素的集合。   数据结构的基本概念
数据、数据元素、数据项之间的关系 ,[object Object],[object Object],1.3  数据结构的基本概念
[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念 数据的逻辑结构是从具体问题抽象出来的 数据模型 关联方式或邻接关系 学籍管理问题中,表项之间的逻辑关系指的是什么? 人机对弈问题中,格局之间的逻辑关系指的是什么? 教学计划编排问题中,课程之间的逻辑关系指的是什么?
[object Object],[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念 存储结构实质上是内存分配, 在具体实现时,依赖于计算机语言。 内存
[object Object],[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念
[object Object],[object Object],[object Object],[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念
[object Object],[object Object],1.3  数据结构的基本概念 数据结构的基本概念 … bat cat eat … 起始地址 例:( bat, cat, eat )
[object Object],[object Object],[object Object],例:( bat, cat, eat ) 1.3  数据结构的基本概念 数据结构的基本概念 bat 0200 cat 0325 eat ∧ 0200 0208 0300 0325 … … … …
逻辑结构和存储结构之间的关系 ,[object Object],[object Object],1.3  数据结构的基本概念
数据结构的访问接口 ,[object Object],[object Object],[object Object],[object Object],[object Object],1.3  数据结构的基本概念
抽象数据类型 1.  数据类型 ( Data Type ):一组 值 的集合以及定义于这个值集上的一组 操作 的总称。 例如: C++ 中的整型变量   2.  抽象 ( Abstract ) : 抽出问题本质的特征而忽略非本质的细节。 例如: 地图、驾驶汽车 3.  抽象数据类型 ( Abstract Data Type , ADT ) : 一个 数据结构 以及定义在该结构上的 一组操作 的总称。  1.3  数据结构的基本概念
ADT 是对数据类型的进一步抽象  ADT 的不同视图 1.3  数据结构的基本概念 ADT · 逻辑结构 · 操作集合 数据结构 · 存储结构 · 算法设计 类 · 成员变量 · 成员函数 (a) 使用视图  (b)  设计视图  (c)  实现视图 ADT 的定义  ADT 的设计  ADT 的实现
ADT  抽象数据类型名 Data 数据元素之间逻辑关系的定义 Operation 操作 1 前置条件 :执行此操作前数据所必须的状态  输  入 :执行此操作所需要的输入 功  能 :该操作将完成的功能 输  出 :执行该操作后产生的输出 后置条件 :执行该操作后数据的状态 操作 2 …… …… 操作 n …… endADT   ADT 的定义形式 1.3  数据结构的基本概念
1.3  数据结构的基本概念(小结) 数据的操作:插入、删除、修改、检索、排序等  数据的逻辑结构  数据的存储结构  顺序存储 链式存储 集合 线性结构 树结构 图结构 非数值问题  数据表示
算法的相关概念 1. 算法 ( Algorithm ) : 是对 特定问题 求解步骤的一种描述,是 指令 的 有限序列 。 2.   算法的五大特性: ⑴   输入 :一个算法有零个或多个输入。 ⑵  输出 :一个算法有一个或多个输出。 ⑶  有穷性 :一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。 ⑷  确定性 :算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。 ⑸  可行性 :算法描述的操作可以通过已经实现的基本操作执行有限次来实现。 1.4  算法及算法分析
[object Object],m n r 例:欧几里德算法——辗转相除法求两个自然数  m   和  n   的最大公约数 1.4  算法及算法分析
算法的描述方法——自然语言  优点:容易理解 缺点:冗长、二义性 使用方法:粗线条描述算法思想   注意事项:避免写成自然段 1.4  算法及算法分析
①  输入 m   和 n ; ②  求 m 除以 n 的余数 r ; ③  若 r 等于 0 ,则 n 为最大公约数,算法结束;否则执行第④步; ④  将 n 的值放在 m 中,将 r 的值放在 n 中; ⑤  重新执行第②步。 例:欧几里德算法 自然语言 1.4  算法及算法分析
优点:流程直观  缺点:缺少严密性、灵活性 使用方法:描述简单算法 注意事项:注意抽象层次 算法的描述方法——流程图  1.4  算法及算法分析
流 程 图 例:欧几里德算法 1.4  算法及算法分析 N 开始 输入 m 和 n r=m % n r=0 m=n ; n=r 输出 n 结束 Y
优点:能由计算机执行  缺点:抽象性差,对语言要求高 使用方法:算法需要验证 注意事项:将算法写成子函数 算法的描述方法——程序设计语言  1.4  算法及算法分析
#include <iostream.h> int CommonFactor(int m, int n) { int r=m % n; while (r!=0)  { m=n; n=r; r=m % n; } return n; } void main( ) { cout<<CommonFactor(63, 54)<<endl; } 程序设计语言 例:欧几里德算法 1.4  算法及算法分析
[object Object]
伪代码 ( Pseudocode ):介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。 优点:表达能力强,抽象性强,容易理解 使用方法: 7 ± 2 算法的描述方法——伪代码  1.4  算法及算法分析
1. r = m % n; 2.  循环直到  r  等于 0 2.1 m = n; 2.2 n = r; 2.3 r = m % n; 3.  输出  n ; 伪 代 码 上述伪代码再具体一些,用 C++ 的函数来描述。请同学们自行完成! 例:欧几里德算法 1.4  算法及算法分析
算法分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],1.4  算法及算法分析
算法分析 算法分析 ( Algorithm Analysis ):对算法所需要的计算机资源—— 时间 和 空间 进行估算。 时间复杂性( Time Complexity ) 空间复杂性( Space Complexity ) 1.4  算法及算法分析
算法的时间复杂度分析 1.4  算法及算法分析 算法分析 算法的 执行时间 =每条语句执行时间之和 for (i=1; i<=n; i++) for (j=1; j<=n; j++) x++; 执行次数 × 执行一次的时间 指令系统、编译的代码质量 单位时间 每条语句 执行次数 之和 基本语句 的执行次数
问题规模: 输入量的多少。 基本语句: 是执行次数与整个算法的执行次 数成正比的操作指令。 for (i=1; i<=n; i++) for (j=1; j<=n; j++) x++; 问题规模: n 基本语句: x++ 1.4  算法及算法分析 算法分析
定义  若存在两个正的常数 c 和 n 0 ,对于任意 n ≥ n 0 ,都有 T ( n )≤ c × f ( n ) ,则称 T ( n ) = O ( f ( n )) ,[object Object],1.4  算法及算法分析 算法分析—— 大 O 符号 n 0 问题规模 n 执行次数 n 0 之前的情况无关紧要 T ( n ) c × f ( n )
定理:若 A ( n )= a m n m + a m -1 n m -1 +  + a 1 n + a 0 是一个 m 次多项式,则 A ( n )= O ( n m ) 。 说明:在计算算法时间复杂度时,可以忽略所有低次幂和最高次幂的系数。 1.4  算法及算法分析 算法分析—— 大 O 符号
例 1-5   ++x;  例 1-6   for  ( i=1; i<=n; ++i ) ++x;  例 1-7  for (i=1; i<=n; ++i)  for (j=1; j<=n; ++j) ++x;   例 1-8  for (i=1; i<=n; ++i) for (j=1; j<=i-1; ++j)  ++x; 1.4  算法及算法分析 算法分析
例 1-9  for (i=1; i<=n; ++i) for (j=1; j<=n; ++j) { c[i][j]=0; for (k=1; k<=n; ++k) c[i][j]+=a[i][k]*b[k][j]; } 例 1-10  for (i=1; i<=n; i=2*i)   ++x; Ο (1) < Ο (log 2 n ) < Ο ( n ) < Ο ( n log 2 n ) < Ο ( n 2 ) < Ο ( n 3 ) <…< Ο (2 n ) < Ο ( n !)  1.4  算法及算法分析 算法分析
最好情况、最坏情况、平均情况 例:在一维整型数组 A [ n ] 中顺序查找与给定值 k 相等的元素(假设该数组中有且仅有一个元素值为 k )。 int Find ( int A[ ], int n )   { for  ( i=0; i<n; i++ ) if  ( A[i]= =k )  break; return i; } 1.4  算法及算法分析 基本语句的执行次数是否只和问题规模有关?
[object Object],[object Object],[object Object],[object Object],结论 :如果问题规模相同,时间代价与输入数据有关,则需要分析最好情况、最坏情况、平均情况。 1.4  算法及算法分析 最好情况、最坏情况、平均情况
本章小结——知识结构图 绪  论 数据结构 算  法 基本概念 逻辑结构 存储结构 ⑴ 数据 ⑵ 数据元素 ⑶ 数据对象 ⑷ ADT ⑴ 逻辑结构 ⑵ 数据结构 的分类 ⑴ 存储结构 ⑵ 常用存储 方法 基本概念 算法分析 ⑴ 算法 ⑵ 算法特性 ⑶ 评价算法 ⑷ 描述算法 ⑴ 问题规模 ⑵ 基本语句 ⑶ 时间复杂度 ⑷ 大 O 记号 关 系
作业: 公元 5 世纪末,我国古代数学家张丘建在它所撰定的《算经》中,提出这样一个问题:“鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?”意思是说公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只 1 元,用 100 元钱买 100 只鸡,求公鸡、母鸡、小鸡的只数。试设计算法求解该问题,并分析你所设计的算法的时间复杂度。(要求:算法分别用伪代码和 C ++描述)

Mais conteúdo relacionado

Mais procurados

09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態shademoon
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串shademoon
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘Chen-Pan Liao
 
域(上)
域(上)域(上)
域(上)zhangxl
 
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的機器學習入門 scikit-learn 連淡水阿嬤都聽得懂的機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn Cicilia Lee
 
資料結構-20個經典題型
資料結構-20個經典題型資料結構-20個經典題型
資料結構-20個經典題型逸 張
 
硕士开题答辩 严一格-R4
硕士开题答辩 严一格-R4硕士开题答辩 严一格-R4
硕士开题答辩 严一格-R4严 一格
 
01.第一章用Matlab求极限
01.第一章用Matlab求极限01.第一章用Matlab求极限
01.第一章用Matlab求极限Xin Zheng
 
Week4 neural network
Week4 neural networkWeek4 neural network
Week4 neural networkCITY535355
 
手把手打開Python資料分析大門
手把手打開Python資料分析大門手把手打開Python資料分析大門
手把手打開Python資料分析大門Yen-lung Tsai
 
[系列活動] 手把手打開Python資料分析大門
[系列活動] 手把手打開Python資料分析大門[系列活動] 手把手打開Python資料分析大門
[系列活動] 手把手打開Python資料分析大門台灣資料科學年會
 

Mais procurados (20)

08 指標
08 指標08 指標
08 指標
 
09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態09 結構、聯合、列舉與定義型態
09 結構、聯合、列舉與定義型態
 
07 陣列與字串
07 陣列與字串07 陣列與字串
07 陣列與字串
 
Ch 6
Ch 6Ch 6
Ch 6
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘
 
域(上)
域(上)域(上)
域(上)
 
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的機器學習入門 scikit-learn 連淡水阿嬤都聽得懂的機器學習入門 scikit-learn
連淡水阿嬤都聽得懂的 機器學習入門 scikit-learn
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
 
資料結構-20個經典題型
資料結構-20個經典題型資料結構-20個經典題型
資料結構-20個經典題型
 
Appendix A 教學
Appendix A 教學Appendix A 教學
Appendix A 教學
 
第6章指针
第6章指针第6章指针
第6章指针
 
硕士开题答辩 严一格-R4
硕士开题答辩 严一格-R4硕士开题答辩 严一格-R4
硕士开题答辩 严一格-R4
 
Ch 06
Ch 06Ch 06
Ch 06
 
01.第一章用Matlab求极限
01.第一章用Matlab求极限01.第一章用Matlab求极限
01.第一章用Matlab求极限
 
Python分支作業
Python分支作業Python分支作業
Python分支作業
 
Week4 neural network
Week4 neural networkWeek4 neural network
Week4 neural network
 
Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業Python程式設計 - 迴圈作業
Python程式設計 - 迴圈作業
 
手把手打開Python資料分析大門
手把手打開Python資料分析大門手把手打開Python資料分析大門
手把手打開Python資料分析大門
 
Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用 Python程式設計 - 串列資料應用
Python程式設計 - 串列資料應用
 
[系列活動] 手把手打開Python資料分析大門
[系列活動] 手把手打開Python資料分析大門[系列活動] 手把手打開Python資料分析大門
[系列活動] 手把手打開Python資料分析大門
 

Destaque (18)

11671
1167111671
11671
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Optimización de la erección tras prostatectomía radical: antes, durante y des...
Optimización de la erección tras prostatectomía radical: antes, durante y des...Optimización de la erección tras prostatectomía radical: antes, durante y des...
Optimización de la erección tras prostatectomía radical: antes, durante y des...
 
11678
1167811678
11678
 
Erp
ErpErp
Erp
 
Feliz AñO Nuevo
Feliz AñO NuevoFeliz AñO Nuevo
Feliz AñO Nuevo
 
SEGUNDA GUERRA MUNDIAL
SEGUNDA GUERRA MUNDIALSEGUNDA GUERRA MUNDIAL
SEGUNDA GUERRA MUNDIAL
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
ოთხკუთხედები
ოთხკუთხედებიოთხკუთხედები
ოთხკუთხედები
 
CV Romain Aliamus 2016
CV Romain Aliamus 2016CV Romain Aliamus 2016
CV Romain Aliamus 2016
 
Escleritis
EscleritisEscleritis
Escleritis
 
Metallic hair accessories
Metallic hair accessoriesMetallic hair accessories
Metallic hair accessories
 
Snap hair clips page 4,hair stickers
Snap hair clips page 4,hair stickersSnap hair clips page 4,hair stickers
Snap hair clips page 4,hair stickers
 
Flower hair- clips-page-2
Flower hair- clips-page-2Flower hair- clips-page-2
Flower hair- clips-page-2
 
Flower headbands -page-3
Flower  headbands -page-3Flower  headbands -page-3
Flower headbands -page-3
 
Hair barrettes , lollipop hair ties
Hair barrettes , lollipop hair tiesHair barrettes , lollipop hair ties
Hair barrettes , lollipop hair ties
 
BDN Guarulhos - English Class - Peter's Life - 1st Class
BDN Guarulhos - English Class - Peter's Life - 1st ClassBDN Guarulhos - English Class - Peter's Life - 1st Class
BDN Guarulhos - English Class - Peter's Life - 1st Class
 
Opportunity cost and governments
Opportunity cost and governmentsOpportunity cost and governments
Opportunity cost and governments
 

Semelhante a 香港六合彩

软件工程
软件工程软件工程
软件工程bill0077
 
01 课程介绍与计算机系统概述
01 课程介绍与计算机系统概述01 课程介绍与计算机系统概述
01 课程介绍与计算机系统概述Huaijin Chen
 
软件工程 第二章
软件工程 第二章软件工程 第二章
软件工程 第二章浒 刘
 
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统Jerry Wen
 
大规模Web服务开发技术 样章(第7章)
大规模Web服务开发技术 样章(第7章)大规模Web服务开发技术 样章(第7章)
大规模Web服务开发技术 样章(第7章)1 1
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计Hengyi
 
Excel函數進階班(北市政府公訓處) 2
Excel函數進階班(北市政府公訓處) 2Excel函數進階班(北市政府公訓處) 2
Excel函數進階班(北市政府公訓處) 2terry28853669
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析areyouok
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析topgeek
 
程式人雜誌 -- 2013年5月號
程式人雜誌 -- 2013年5月號程式人雜誌 -- 2013年5月號
程式人雜誌 -- 2013年5月號鍾誠 陳鍾誠
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章浒 刘
 
R 語言教學: 探索性資料分析與文字探勘初探
R 語言教學: 探索性資料分析與文字探勘初探R 語言教學: 探索性資料分析與文字探勘初探
R 語言教學: 探索性資料分析與文字探勘初探Sean Yu
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程deer hope
 
数据结构 总结与复习
数据结构 总结与复习数据结构 总结与复习
数据结构 总结与复习Wang Yizhe
 
xwz 2010-10-31
xwz 2010-10-31xwz 2010-10-31
xwz 2010-10-31carlxwz
 
上海立派信息技术有限公司
上海立派信息技术有限公司上海立派信息技术有限公司
上海立派信息技术有限公司yiditushe
 

Semelhante a 香港六合彩 (20)

软件工程
软件工程软件工程
软件工程
 
01 课程介绍与计算机系统概述
01 课程介绍与计算机系统概述01 课程介绍与计算机系统概述
01 课程介绍与计算机系统概述
 
软件工程 第二章
软件工程 第二章软件工程 第二章
软件工程 第二章
 
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
 
大规模Web服务开发技术 样章(第7章)
大规模Web服务开发技术 样章(第7章)大规模Web服务开发技术 样章(第7章)
大规模Web服务开发技术 样章(第7章)
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
getPDF.aspx
getPDF.aspxgetPDF.aspx
getPDF.aspx
 
图形学讲义
图形学讲义图形学讲义
图形学讲义
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
 
Excel函數進階班(北市政府公訓處) 2
Excel函數進階班(北市政府公訓處) 2Excel函數進階班(北市政府公訓處) 2
Excel函數進階班(北市政府公訓處) 2
 
第1章
第1章第1章
第1章
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 
程式人雜誌 -- 2013年5月號
程式人雜誌 -- 2013年5月號程式人雜誌 -- 2013年5月號
程式人雜誌 -- 2013年5月號
 
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
 
R 語言教學: 探索性資料分析與文字探勘初探
R 語言教學: 探索性資料分析與文字探勘初探R 語言教學: 探索性資料分析與文字探勘初探
R 語言教學: 探索性資料分析與文字探勘初探
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程
 
数据结构 总结与复习
数据结构 总结与复习数据结构 总结与复习
数据结构 总结与复习
 
xwz 2010-10-31
xwz 2010-10-31xwz 2010-10-31
xwz 2010-10-31
 
上海立派信息技术有限公司
上海立派信息技术有限公司上海立派信息技术有限公司
上海立派信息技术有限公司
 

Mais de 香港六合彩 六合彩 (12)

香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 

香港六合彩

  • 1. 关于教材 主教材 王红梅 . 数据结构( C ++版) . 清华大学出版社 辅导及实验教材 王红梅 . 数据结构学习辅导与实验指导 . 清华大学出版社 参考教材 1. 严蔚敏 . 数据结构 . 清华大学出版社 .1997 2. 王晓东 . 数据结构与算法设计 . 电子工业出版社 .2002 3. 曹宏庆译 . 如何求解问题 . 中国水利水电出版社 .2003
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. 1938 年出生, 25 岁毕业于加州理工学院数学系,博士毕业后留校任教, 28 岁任副教授。 30 岁时,加盟斯坦福大学计算机系,任教授。从 31 岁起,开始出版他的历史性经典巨著: The Art of Computer Programming 他计划共写 7 卷,然而出版三卷之后,已震惊世界,使他获得计算机科学界的最高荣誉图灵奖,此时,他年仅 36 岁。 数据结构的创始人——克努思
  • 9. 1.1 数据结构的兴起和发展 程序设计的实质是什么 ? 数据表示: 将数据存储在计算机中 数据处理: 处理数据,求解问题 数据结构问题起源于程序设计
  • 10.
  • 11.
  • 12. 例 1 学籍管理问题——表结构 1.2 数据结构的研究对象 学号 姓名 性别 出生日期 政治面貌 0001 王 军 男 1983/09/02 团员 0002 李 明 男 1982/12/25 党员 0003 汤晓影 女 1984/03/26 团员 … … … … … 完成什么功能 ? 各表项之间是什么关系?
  • 13. 例 2 人机对弈问题——树结构 1.2 数据结构的研究对象 如何实现对弈 ? 各格局之间是什么关系? …… …… .. …… . . …… … ... ……
  • 14. 例 3 教学计划编排问题——图结构 1.2 数据结构的研究对象 C 4 , C 5 , C 6 数据库原理 C 7 C 2 , C 4 计算机原理 C 6 C 3 , C 4 数据结构 C 5 C 1 , C 2 程序设计 C 4 C 1 离散数学 C 3 无 计算机导论 C 2 无 高等数学 C 1 先修课 课程名称 编号 C 1 C 2 C 3 C 4 C 6 C 5 C 7 如何表示课程之间的先修关系?
  • 15. 数据结构是研究 非数值 问题中计算机的 操作对象 以及它们之间的 关系 和 操作 的学科。 1.2 数据结构的研究对象
  • 16. 1.3 数据结构的基本概念 数据 :所有能 输入 到计算机中并能被计算机程序 识别和处理 的符号集合。 数值数据:整数、实数等 非数值数据:图形、图象、声音、文字等 数据元素 :数据的 基本 单位,在计算机程序中通常作为一个 整体 进行考虑和处理。 数据项 :构成数据元素的不可分割的最小单位。 数据对象 :具有相同 性质 的数据元素的集合。 数据结构的基本概念
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. 抽象数据类型 1. 数据类型 ( Data Type ):一组 值 的集合以及定义于这个值集上的一组 操作 的总称。 例如: C++ 中的整型变量 2. 抽象 ( Abstract ) : 抽出问题本质的特征而忽略非本质的细节。 例如: 地图、驾驶汽车 3. 抽象数据类型 ( Abstract Data Type , ADT ) : 一个 数据结构 以及定义在该结构上的 一组操作 的总称。 1.3 数据结构的基本概念
  • 29. ADT 是对数据类型的进一步抽象 ADT 的不同视图 1.3 数据结构的基本概念 ADT · 逻辑结构 · 操作集合 数据结构 · 存储结构 · 算法设计 类 · 成员变量 · 成员函数 (a) 使用视图 (b) 设计视图 (c) 实现视图 ADT 的定义 ADT 的设计 ADT 的实现
  • 30. ADT 抽象数据类型名 Data 数据元素之间逻辑关系的定义 Operation 操作 1 前置条件 :执行此操作前数据所必须的状态 输 入 :执行此操作所需要的输入 功 能 :该操作将完成的功能 输 出 :执行该操作后产生的输出 后置条件 :执行该操作后数据的状态 操作 2 …… …… 操作 n …… endADT ADT 的定义形式 1.3 数据结构的基本概念
  • 31. 1.3 数据结构的基本概念(小结) 数据的操作:插入、删除、修改、检索、排序等 数据的逻辑结构 数据的存储结构 顺序存储 链式存储 集合 线性结构 树结构 图结构 非数值问题 数据表示
  • 32. 算法的相关概念 1. 算法 ( Algorithm ) : 是对 特定问题 求解步骤的一种描述,是 指令 的 有限序列 。 2. 算法的五大特性: ⑴ 输入 :一个算法有零个或多个输入。 ⑵ 输出 :一个算法有一个或多个输出。 ⑶ 有穷性 :一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。 ⑷ 确定性 :算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。 ⑸ 可行性 :算法描述的操作可以通过已经实现的基本操作执行有限次来实现。 1.4 算法及算法分析
  • 33.
  • 34. 算法的描述方法——自然语言 优点:容易理解 缺点:冗长、二义性 使用方法:粗线条描述算法思想 注意事项:避免写成自然段 1.4 算法及算法分析
  • 35. ① 输入 m 和 n ; ② 求 m 除以 n 的余数 r ; ③ 若 r 等于 0 ,则 n 为最大公约数,算法结束;否则执行第④步; ④ 将 n 的值放在 m 中,将 r 的值放在 n 中; ⑤ 重新执行第②步。 例:欧几里德算法 自然语言 1.4 算法及算法分析
  • 36. 优点:流程直观 缺点:缺少严密性、灵活性 使用方法:描述简单算法 注意事项:注意抽象层次 算法的描述方法——流程图 1.4 算法及算法分析
  • 37. 流 程 图 例:欧几里德算法 1.4 算法及算法分析 N 开始 输入 m 和 n r=m % n r=0 m=n ; n=r 输出 n 结束 Y
  • 38. 优点:能由计算机执行 缺点:抽象性差,对语言要求高 使用方法:算法需要验证 注意事项:将算法写成子函数 算法的描述方法——程序设计语言 1.4 算法及算法分析
  • 39. #include <iostream.h> int CommonFactor(int m, int n) { int r=m % n; while (r!=0) { m=n; n=r; r=m % n; } return n; } void main( ) { cout<<CommonFactor(63, 54)<<endl; } 程序设计语言 例:欧几里德算法 1.4 算法及算法分析
  • 40.
  • 41. 伪代码 ( Pseudocode ):介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。 优点:表达能力强,抽象性强,容易理解 使用方法: 7 ± 2 算法的描述方法——伪代码 1.4 算法及算法分析
  • 42. 1. r = m % n; 2. 循环直到 r 等于 0 2.1 m = n; 2.2 n = r; 2.3 r = m % n; 3. 输出 n ; 伪 代 码 上述伪代码再具体一些,用 C++ 的函数来描述。请同学们自行完成! 例:欧几里德算法 1.4 算法及算法分析
  • 43.
  • 44. 算法分析 算法分析 ( Algorithm Analysis ):对算法所需要的计算机资源—— 时间 和 空间 进行估算。 时间复杂性( Time Complexity ) 空间复杂性( Space Complexity ) 1.4 算法及算法分析
  • 45. 算法的时间复杂度分析 1.4 算法及算法分析 算法分析 算法的 执行时间 =每条语句执行时间之和 for (i=1; i<=n; i++) for (j=1; j<=n; j++) x++; 执行次数 × 执行一次的时间 指令系统、编译的代码质量 单位时间 每条语句 执行次数 之和 基本语句 的执行次数
  • 46. 问题规模: 输入量的多少。 基本语句: 是执行次数与整个算法的执行次 数成正比的操作指令。 for (i=1; i<=n; i++) for (j=1; j<=n; j++) x++; 问题规模: n 基本语句: x++ 1.4 算法及算法分析 算法分析
  • 47.
  • 48. 定理:若 A ( n )= a m n m + a m -1 n m -1 +  + a 1 n + a 0 是一个 m 次多项式,则 A ( n )= O ( n m ) 。 说明:在计算算法时间复杂度时,可以忽略所有低次幂和最高次幂的系数。 1.4 算法及算法分析 算法分析—— 大 O 符号
  • 49. 例 1-5 ++x; 例 1-6 for ( i=1; i<=n; ++i ) ++x; 例 1-7 for (i=1; i<=n; ++i) for (j=1; j<=n; ++j) ++x; 例 1-8 for (i=1; i<=n; ++i) for (j=1; j<=i-1; ++j) ++x; 1.4 算法及算法分析 算法分析
  • 50. 例 1-9 for (i=1; i<=n; ++i) for (j=1; j<=n; ++j) { c[i][j]=0; for (k=1; k<=n; ++k) c[i][j]+=a[i][k]*b[k][j]; } 例 1-10 for (i=1; i<=n; i=2*i) ++x; Ο (1) < Ο (log 2 n ) < Ο ( n ) < Ο ( n log 2 n ) < Ο ( n 2 ) < Ο ( n 3 ) <…< Ο (2 n ) < Ο ( n !) 1.4 算法及算法分析 算法分析
  • 51. 最好情况、最坏情况、平均情况 例:在一维整型数组 A [ n ] 中顺序查找与给定值 k 相等的元素(假设该数组中有且仅有一个元素值为 k )。 int Find ( int A[ ], int n ) { for ( i=0; i<n; i++ ) if ( A[i]= =k ) break; return i; } 1.4 算法及算法分析 基本语句的执行次数是否只和问题规模有关?
  • 52.
  • 53. 本章小结——知识结构图 绪 论 数据结构 算 法 基本概念 逻辑结构 存储结构 ⑴ 数据 ⑵ 数据元素 ⑶ 数据对象 ⑷ ADT ⑴ 逻辑结构 ⑵ 数据结构 的分类 ⑴ 存储结构 ⑵ 常用存储 方法 基本概念 算法分析 ⑴ 算法 ⑵ 算法特性 ⑶ 评价算法 ⑷ 描述算法 ⑴ 问题规模 ⑵ 基本语句 ⑶ 时间复杂度 ⑷ 大 O 记号 关 系
  • 54. 作业: 公元 5 世纪末,我国古代数学家张丘建在它所撰定的《算经》中,提出这样一个问题:“鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?”意思是说公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只 1 元,用 100 元钱买 100 只鸡,求公鸡、母鸡、小鸡的只数。试设计算法求解该问题,并分析你所设计的算法的时间复杂度。(要求:算法分别用伪代码和 C ++描述)