《Java05算法与数据结构课件》由会员分享,可在线阅读,更多相关《Java05算法与数据结构课件(16页珍藏版)》请在金锄头文库上搜索。
1、Java技术与应用技术与应用Java系统类系统类 (第第5章章)西安交大西安交大 卫颜俊卫颜俊 2009年年4月月电子信箱:电子信箱:Mr.JavQQ: 610568018网站网站: http:/202.117.58.97/javaJava05算法与数据结构2 / 17主要内容算法、数据结构算法、数据结构核心语言包核心语言包(java.lang) 工具包工具包(java.util)数学包数学包(java.math)Java05算法与数据结构3 / 171.算法、数据结构使用计算机求解现实世界问题的步骤:1.首先需要对问题进行数学抽象,使用数学语言对现实问题加以描述称为数学建模,得到数学模型2.
2、然后将数学模型化为计算机算法和数据结构3.最后使用计算机语言进行程序设计,得出问题的答案。 Java05算法与数据结构4 / 17数据结构各种数据组织形式及其相关操作方式的集合。包括线性结构和非线性结构线性结构的元素之间存在确定的物理顺序关系而非线性结构的元素之间不一定存在确定的物理顺序。Java05算法与数据结构5 / 17数据结构(2)数据的逻辑结构描述的是元素之间的逻辑关系数据的逻辑结构在计算机存储空间中的实现称为数据的物理结构。常见的数据结构又可以细分为:顺序表、链表、栈、队列、哈希表、树和图等。 Java05算法与数据结构6 / 17算法算法是解决特定问题的步骤,即“计算与法则”,具
3、有以下5个特性:输入:包含输入数据;输入:包含输入数据;输出:包含输出数据;输出:包含输出数据;有穷:由有限条指令组成;有穷:由有限条指令组成;确定:每条指令有确切的含义,对于相同的输入数据得到确定:每条指令有确切的含义,对于相同的输入数据得到相同的输出结果;相同的输出结果;可行:在有限步内实现输出。可行:在有限步内实现输出。描述算法可以使用自然语言、框图、伪代码或程序设计语言等使用时间复杂度和空间复杂度来度量算法的效率。 Java05算法与数据结构7 / 17误差由算法得出计算结果的过程中步步都可能存在误差计算结果只是现实世界模型的近似值,在建立数学计算结果只是现实世界模型的近似值,在建立数
4、学模型时可能由于抽象方法不很科学,会出现第一种模型时可能由于抽象方法不很科学,会出现第一种误差,称为误差,称为模型误差模型误差;数学模型中用到的一些参数大多数情况下是由观测数学模型中用到的一些参数大多数情况下是由观测得来的,所以也会出现误差,称为得来的,所以也会出现误差,称为观测误差观测误差;由电脑计算出来的结果与模型的准确值之间也存在由电脑计算出来的结果与模型的准确值之间也存在误差,称为误差,称为截断误差截断误差;当计算当中对数值位数进行舍入时也存在误差,称当计算当中对数值位数进行舍入时也存在误差,称为为舍入误差舍入误差。Java05算法与数据结构8 / 17衡量算法的误差幅度绝对误差,即准
5、确值与近似值之差相对误差,即准确值与近似值的差值除以准确值。例5-1,5-2说明了算法与误差的关系。Java05算法与数据结构9 / 17【例8-1】计算定积分 两种迭代公式 (A)(B) Java05算法与数据结构10 / 172.核心语言包(java.lang) ObjectClassSystem 【例5-9】 Math基本数据类型类 【例5-10】 StringBuilderJava05算法与数据结构11 / 173.工具包(java.util)日期类DateCalendarGregorianCalendar 【例5-11】 随机数类Random集合(Collection)和映射(Map
6、)Java05算法与数据结构12 / 17数据结构类Collection为所有集合层次的根,代表一组元素;Set为不包含重复元素的集合;SortedSet 为Set的一种,自动维持升序排列;List为有序集合(序列),可以包含重复元素;Queue为队列。Map为键-值对(key-value),不能包含重复键,每个键最多对应一个值;SortedMap为Map的一种,自动维持升序排列。 Java05算法与数据结构13 / 17数据结构类举例【例5-3】ArrayList类演示 【例5-5】Stack类演示 Java05算法与数据结构14 / 174.数学包(java.math)BigDecimal类 Java05算法与数据结构15 / 17 BigInteger类 Java05算法与数据结构16 / 17综合举例【例5-14】已知某物品的月租费为10¥,每天滞纳金0.1¥,又已知某人租该物品的最后期限为oldDay,计算某人交了100¥费后,新的期限是多少? Java05算法与数据结构