第绪论Java课程学习.pptx
《第绪论Java课程学习.pptx》由会员分享,可在线阅读,更多相关《第绪论Java课程学习.pptx(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1第第 绪论绪论(xln)Java第一页,共43页。第第1章章 绪论绪论(xln)l l1.1 数据结构的基本概念l l1.2 算法(sun f)l l1.3 Java开发运行环境第1页/共42页第二页,共43页。目的目的(md)和要求和要求 目的:勾勒数据结构课程的轮廓。目的:勾勒数据结构课程的轮廓。内容:数据结构概念,算法设计内容:数据结构概念,算法设计(shj)(shj)与分析。与分析。要求:理解数据结构基本概念,理解抽象数据要求:理解数据结构基本概念,理解抽象数据 类型概念;熟悉算法设计类型概念;熟悉算法设计(shj)(shj)和分析方法。掌和分析方法。掌 握编辑、编译、运行握编
2、辑、编译、运行Java ApplicationJava Application程程 序的基本技能。序的基本技能。重点:数据的逻辑结构和存储结构概念。重点:数据的逻辑结构和存储结构概念。难点:抽象数据类型,算法分析。难点:抽象数据类型,算法分析。实验:简单算法设计实验:简单算法设计(shj)(shj),回顾,回顾Java+Java+语言的基语言的基本本 语法和面向对象基本概念。语法和面向对象基本概念。第2页/共42页第三页,共43页。1.1 数据结构数据结构(sh j ji u)的基的基本概念本概念1.1.1 1.1.1 为什么要学习为什么要学习(xux)(xux)数据结构数据结构1.1.2 1
3、.1.2 什么是数据结构什么是数据结构1.1.3 1.1.3 数据类型与抽象数据类型数据类型与抽象数据类型 第3页/共42页第四页,共43页。1.1.1 为什么要学习为什么要学习(xux)数据结构数据结构l l软件设计是计算机学科各个领域的核心。软件设计时要考虑的首要问题是数据的表示、组织和处理(chl)方法。数据结构设计和算法设计是软件系统设计的核心。l l“数据结构十算法=程序”。第4页/共42页第五页,共43页。1.1.2 什么什么(shn me)是数据结构是数据结构n n数据(data)、数据元素(yun s)(data element)、数据项(data item)。n n数据结构(
4、data structure)指数据元素(yun s)之间存在的关系。第5页/共42页第六页,共43页。1.数据数据(shj)的逻辑的逻辑结构结构(1 1)线性结构:数据元素)线性结构:数据元素(yun s)(yun s)只有一个前驱数据元素只有一个前驱数据元素(yun s)(yun s)和一和一个后继数据元素个后继数据元素(yun s)(yun s)。(2 2)树结构:每个数据元素)树结构:每个数据元素(yun s)(yun s)只有一个前驱数据元素只有一个前驱数据元素(yun s)(yun s),可有零个或若干个后继数据元素可有零个或若干个后继数据元素(yun s)(yun s)。(3 3
5、)图结构:每个数据元素)图结构:每个数据元素(yun s)(yun s)可有零个或若干个前驱数据元素可有零个或若干个前驱数据元素(yun s)(yun s),零个或若干个后继数据元素,零个或若干个后继数据元素(yun s)(yun s)。第6页/共42页第七页,共43页。(1)线性结构)线性结构(jigu)学学 号号姓姓 名名年年 龄龄2002000120020001王红王红18182002000220020002张明张明19192002000320020003吴宁吴宁18182002000420020004秦风秦风1717表表1-1 学生学生(xu sheng)信息表信息表 第7页/共42页
6、第八页,共43页。(2)树结构树结构 第8页/共42页第九页,共43页。(3)图结构)图结构(jigu)图图1-31-3南京飞往昆明南京飞往昆明(kn mn(kn mn)的航班路的航班路线图线图 第9页/共42页第十页,共43页。2.数据的存储数据的存储(cn ch)结构结构(1 1)顺序存储结构)顺序存储结构(jigu)(jigu)(2 2)链式存储结构)链式存储结构(jigu)(jigu)第10页/共42页第十一页,共43页。3.数据数据(shj)操作操作n n初始化。初始化。n n判断是否空状态。判断是否空状态。n n求长度:统计元素个数。求长度:统计元素个数。n n包含:判断是否包含指
7、定元素。包含:判断是否包含指定元素。n n遍历:按某种次序访问所有元素,每个元素只遍历:按某种次序访问所有元素,每个元素只被访问一次。被访问一次。n n取值:获取取值:获取(huq(huq)指定元素值。指定元素值。n n置值:设置指定元素值。置值:设置指定元素值。n n插入:增加指定元素。插入:增加指定元素。n n删除:移去指定元素。删除:移去指定元素。第11页/共42页第十二页,共43页。1.1.3 数据类型与抽象数据类型数据类型与抽象数据类型数据类型与抽象数据类型数据类型与抽象数据类型 n n数据类型(data type)是指一个(y)类型和定义在这个类型上的操作集合。n n抽象数据类型(
8、Abstract Data Type,ADT)是指一个(y)逻辑概念上的类型和这个类型上的操作集合。第12页/共42页第十三页,共43页。复数复数(fsh)抽象数据类型抽象数据类型 ADT Complex double real,imag;/实部和虚部 Complex(real,imag);Complex add(Complex c);/加法(jif)Complex sub(Complex c);/减法;第13页/共42页第十四页,共43页。ADT Set ADT Set 数据:集合中有数据:集合中有n n(n0n0)个数据元素,元素类型为)个数据元素,元素类型为T T 操作:操作:boole
9、an isEmpty();/boolean isEmpty();/判断集合是否为空判断集合是否为空 int size();/int size();/返回集合的元素个数返回集合的元素个数 boolean contains(T x);/boolean contains(T x);/判断集合是否包含元素判断集合是否包含元素x x boolean add(T x);/boolean add(T x);/增加元素增加元素x x boolean remove(T x);/boolean remove(T x);/删除首次出现的元素删除首次出现的元素x x void clear();/void clear(
10、);/删除集合所有元素删除集合所有元素 void print();/void print();/输出输出(shch)(shch)集合中所有元素集合中所有元素 boolean equals(Set s);/boolean equals(Set s);/比较集合是否相等比较集合是否相等 boolean containsAll(Set s);boolean containsAll(Set s);/判断是否包含判断是否包含s s中的所有元素,中的所有元素,s s是否子集是否子集 boolean addAll(Set s);/boolean addAll(Set s);/集合并集合并 boolean r
11、emoveAll(Set s);/boolean removeAll(Set s);/集合差集合差 boolean retainAll(Set s);boolean retainAll(Set s);/仅保留那些也包含在集合仅保留那些也包含在集合s s中的元素中的元素 第14页/共42页第十五页,共43页。1.1.6 用用Java语言描述语言描述(mio sh)数据数据结构结构public interface SSetpublic interface SSet /集合接口,集合接口,T T是泛型参数,指定元素类型是泛型参数,指定元素类型 boolean isEmpty();/boolean i
12、sEmpty();/判断判断(pndun)(pndun)集合是否为空集合是否为空 int size();/int size();/返回集合的元素个数返回集合的元素个数 String toString();/String toString();/返回集合元素的描述字符串返回集合元素的描述字符串 T search(T key);/T search(T key);/查找,返回关键字为查找,返回关键字为keykey元素元素 boolean contain(T x);/boolean contain(T x);/判断判断(pndun)(pndun)集合是否包含元素集合是否包含元素x x void add
13、(T x);/void add(T x);/增加元素增加元素x x void remove(T x);/void remove(T x);/删除首次出现的元素删除首次出现的元素x x void removeAll();/void removeAll();/删除集合所有元素删除集合所有元素 第15页/共42页第十六页,共43页。1.2 算法算法(sun f)1.2.1 1.2.1 什么是算法什么是算法1.2.2 1.2.2 算法分析算法分析(fnx)(fnx)1.2.3 1.2.3 算法设计算法设计第16页/共42页第十七页,共43页。1.2.1 什么什么(shn me)是算法是算法n n算法(
14、sun f)定义n n有穷性n n确定性n n输入n n输出n n可行性2.算法设计目标算法设计目标3.正确性正确性4.可读性可读性5.健壮性健壮性6.高时间效率高时间效率(xio l)7.高空间效率高空间效率(xio l)第17页/共42页第十八页,共43页。3.算法算法(sun f)描述描述元素元素 search(search(关键字关键字 key)key)e=e=数据序列数据序列(xli)(xli)的第一个元素的第一个元素;while(while(数据序列数据序列(xli)(xli)未结束未结束&e&e的关键字不是的关键字不是key)key)e=e=数据序列数据序列(xli)(xli)的
15、下一个元素的下一个元素;返回查找到的元素或查找不成功标记返回查找到的元素或查找不成功标记;第18页/共42页第十九页,共43页。4.算法算法(sun f)与数据与数据结构结构图图1-6 1-6 线性表插入线性表插入(ch r)(ch r)操作操作 第19页/共42页第二十页,共43页。1.2.2 算法算法(sun f)分析分析n n度量(dling)算法的时间效率n n算法的时间效率指算法的执行时间随问题规模的增长而增长的趋势,通常采用时间复杂度来度量(dling)算法的时间效率。n nT(n)=O(f(n)n n度量(dling)算法的空间效率n n空间复杂度指算法在执行时为解决问题所需要的
16、额外内存空间,不包括输入数据所占用的存储空间。n nS(n)=O(f(n)第20页/共42页第二十一页,共43页。表表1-2 时间时间(shjin)复杂度随复杂度随n变化情况的比较变化情况的比较时间复杂度时间复杂度n=8(23)n=10n=100n=1000O(1)1111O(log2n)33.3226.6449.966O(n)8101001000O(nlog2n)2433.22664.49966O(n2)6410010000106第21页/共42页第二十二页,共43页。n n一个简单语句的时间一个简单语句的时间(shjin)(shjin)复杂度为复杂度为O(1)O(1)。n nint cou
17、nt=0;int count=0;n n一个循环的时间一个循环的时间(shjin)(shjin)复杂度为复杂度为O(n)O(n)。n nint n=8,count=0;int n=8,count=0;n nfor(int i=1;i=n;i+)for(int i=1;i=n;i+)n n count+;count+;n n时间时间(shjin)(shjin)复杂度为复杂度为O(log2 n)O(log2 n)的循环语句。的循环语句。n nint n=8,count=0;int n=8,count=0;n nfor(int i=1;i=n;i*=2)for(int i=1;i=n;i*=2)n
18、n count+;count+;n n时间时间(shjin)(shjin)复杂度为复杂度为O(n2)O(n2)的二重循环。的二重循环。n nint n=8,count=0;int n=8,count=0;n nfor(int i=1;i=n;i+)for(int i=1;i=n;i+)n n for(int j=1;j=n;j+)for(int j=1;j=n;j+)n n count+;count+;【例【例1.1】算法时间算法时间(shjin)复杂度分复杂度分析。析。第22页/共42页第二十三页,共43页。【例【例【例【例1.11.1】算法算法算法算法(sun f(sun f)时间复杂度分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 绪论 Java 课程 学习
限制150内