网站大量收购独家精品文档,联系QQ:2885784924

数据结构-第1次课第一章基本概念.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.1 什么是数据结构 计算机是一门研究利用计算机进行信息表示和处理的科学。 涉及: 信息的表示 信息的处理 1.1 什么是数据结构 用计算机解决问题的过程 1.1 什么是数据结构 ?早期: 主要用于数值计算。 ?后来: 处理逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。 1.1 什么是数据结构 ?早期: 主要用于数值计算。 ?后来: 处理逐渐扩大到非数值计算领域(能处理多种复杂的具有一定结构关系的数据)。 1.1 什么是数据结构 用计算机解决问题的过程 1.1 什么是数据结构 主要考虑的是设计出合适的数据结构及相应的算法。 即:首先要考虑对相关的各种信息如何表示、组织和存储? 因此,简单说来,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。 数据结构课程的形成和发展 形成阶段 60年代初期,“数据结构”有关的内容散见于操作系统、编译原理和表处理语言等课程。 1968年,美唐纳德·克努特(Donald Ervin Knuth)教授开创了数据结构的最初体系,《计算机程序设计技巧》第一卷《基本算法》 ,“数据结构”被列入美国一些大学计算机科学系的教学计划。 发展阶段: 数据结构的概念不断扩充,包括了网络、集合代数论、关系等“离散数学结构”的内容。 70年代后期,80年代初,我国高校陆续开设该课程。 计算机程序设计技巧,【作 者】(美)克努特(D.E. Knuth)著;管纪文,苏运霖译 1968年,《计算机程序设计艺术》(TAOCP)的第一卷正式出版了。这一卷的标题叫《基本算法》,但难度却并不低。据说比尔·盖茨曾经花了几个月的时间读完这一卷,并且做了大量的练习,然后他说,如果你想成为一个优秀的程序员,那就去读这个《基本算法》吧。高德纳本人的说法更犀利:要是看不懂,就别当程序员。 将数据的逻辑结构、存储结构以及对每种结构所定义的操作组成了“数据结构”的主要内容。此后,各大学纷纷开设“数据结构”课程。 在不同的编程环境中 存储结构可有不同的描述方法。 当用高级程序设计语言进行编程时,通常可用高级编程语言中提供的数据类型描述之。 例如:以三个带有次序关系的整数表示一个长整数时,可利用C++语言中提供的整数数组类型,定义长整数为: int long_int[3]; 抽象数据类型的表示和实现 抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。 本章学习要点 熟悉各名词、术语的含义,掌握基本概念; 理解算法五个要素的确切含义; 掌握计算语句频度和估算算法时间复杂度的方法。 练习 1. 下面程序的时间复杂度为_________。 练习 2. 下面程序的时间复杂度为_________。 A的ASCII码是65 数据对象:某种数据类型元素的集合。 例3、整数的数据对象是{…-3,-2,-1,0,1,2,3,…} 英文字符类型的数据对象是{A,B,C,D,E,F,…} 图形、图像、声音、视频信号、程序等一切信息都可以称为数据 算法与程序的主要区别在于一个程序通常是用某种程序语言书写的一个计算过程,而一个算法则并不一定表现为一个计算机程序,它可以用不同方式和不同语言来描述。 一个算法可采用自然语言如英语、汉语描述,也可以采用图形方式如流程图、拓扑图描述;如果算法用各种计算机语言描述,那么就表现为一个程序。 但同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行时,效率均不相同。因此,使用绝对的时间单位衡量算法的效率是不合适的。应撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法“运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),或者说,它是问题规模的函数。 为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本操作的原操作,以该操作重复执行的次数作为算法的时间量度。 显然,呗称作问题的基本操作的原操作应是其重复执行次数和算法的执行时间成正比的原操作,多数情况下它是最深层循环内的语句中的原操作,它的执行次数和包含它的语句的频度相同。语句的频度指的是该语句重复执行的次数。 一个算法时间为O(1)的算法,它的基本运算执行的次数是固定的。因此,总的时间由一个常数(即零次多项式)来限界。而一个时间为O(n2)的算法则由一个二次多项式来限界。 平均时间复杂性假设每种情况出现的概率相等,但很多情况下难以确定。 z 第一个for循环执行m

您可能关注的文档

文档评论(0)

精品资源 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档