还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《算法的概念》ppt课件目录•算法的定义CONTENTS•算法的分类•算法的评估•常见算法介绍•算法的应用01算法的定义算法的基本概念算法的基本概念算法的组成要素算法的分类算法是指一系列解决问题的清晰指令,它按算法通常包括输入、输出、操作和规则四个根据不同的分类标准,算法可以分为不同的照一定的规则和步骤,将复杂的问题分解为要素输入是算法处理的数据,输出是算法类型例如,根据算法的功能,可以分为数一系列相对简单的子问题,以便于解决处理的结果,操作是算法实现的具体步骤,值计算算法、非数值计算算法和数据结构算规则是算法执行的顺序和逻辑法;根据算法的实现方式,可以分为顺序算法和并行算法算法的特性可行性确定性算法中的每一步操作都必须是可以实现的,也就是说,这些操作必须基于算法中的每一步都必须具有明确的含现实的技术和工具02义,并且每一步的操作都必须清晰、明确,不能有任何歧义有穷性0103算法必须在有限的时间内完成,也就是说,算法中的每一步操作都必须有明确的执行时间和次数限制输出一个算法必须有输出,也就是说,它必须产生一些结果或数据作为输出0504输入一个算法必须有输入,也就是说,它必须接受一些数据作为输入,才能进行计算或处理算法的表示方法伪代码程序设计语言用类似于编程语言的格式描述算用编程语言的格式描述算法的步法的步骤和逻辑,这种方法比自骤和逻辑,这种方法严谨、精确、然语言更精确,但仍然不够严谨易于实现,但需要一定的编程基础01020304自然语言描述流程图用自然语言描述算法的步骤和逻用图形的方式描述算法的步骤和辑,这种方法简单易懂,但不够逻辑,这种方法直观易懂,但难精确以描述复杂的逻辑关系02算法的分类按照算法的逻辑结构分类01020304顺序结构算法选择结构算法循环结构算法嵌套结构算法算法步骤按照顺序执行,无分算法中包含条件判断,根据条算法中包含循环结构,重复执算法中包含多个层次的逻辑结支或循环件选择执行不同的分支行特定操作直到满足终止条件构,如循环内部包含选择或顺序结构按照算法的设计方法分类分治算法动态规划算法将问题分解为若干个子问题,递归地解决子在每一步选择中都采取当前状态下最好或最问题,再将子问题的解合并为原问题的解优(即最有利)的选择,从而希望导致结果是最好或最优的算法贪心算法回溯算法将原问题分解为若干个子问题,按顺序解决通过穷举所有可能情况来找到问题的解,适子问题,以避免重复计算用于约束满足问题按照算法的实现语言分类010203低级语言实现算法中级语言实现算法高级语言实现算法使用机器语言或汇编语言使用高级编程语言编写,使用更高级的编程语言编编写,直接控制计算机硬如C、C等,提供更抽象的写,如Python、Java等,件编程接口提供更丰富的库和框架支持03算法的评估时间复杂度定义分类分析时间复杂度是衡量算法执常见的时间复杂度有O
1、通过时间复杂度,可以评行时间随输入规模增长而Olog n、On、On^
2、估算法在处理不同规模输增长的量度O2^n等入时的性能表现空间复杂度分类常见的空间复杂度有O
1、Olog定义n、On、On^2等空间复杂度是衡量算法在执行过程中所需存储空间大小的量度分析通过空间复杂度,可以评估算法在处理大量数据时的内存占用情况可读性定义提高方法可读性是指算法的易理解程度,包括使用有意义的变量名、添加注释、遵代码的简洁性、注释的完整性等循统一的代码风格等重要性良好的可读性有助于提高代码质量,降低维护成本,并促进团队协作04常见算法介绍排序算法1冒泡排序2选择排序3插入排序通过重复地遍历待排序的数列,一次比在未排序的序列中找到最小(或最大)将数组分为已排序和未排序两部分,初较两个元素,如果他们的顺序错误就把的元素,存放到排序序列的起始位置,始时已排序部分包含了数组的第一个元他们交换过来遍历数列的工作是重复然后再从剩余未排序的元素中继续寻找素,之后从未排序部分取出元素,并在地进行直到没有再需要交换,也就是说最小(或最大)元素,然后放到已排序已排序部分找到合适的插入位置插入,该数列已经排序完成序列的末尾以此类推,直到所有元素并保持已排序部分一直有序,重复此过均排序完毕程,直到未排序部分元素为空查找算法线性查找二分查找哈希查找从数组的一端开始,顺序扫描,直到在有序数组中查找某一特定元素的搜根据关键码值在哈希表中进行查找的找到所查元素为止索算法搜索过程从数组的中间元素操作在哈希表中查找一个元素时,开始,如果中间元素正好是目标值,利用哈希函数将关键码值转换成一个则搜索过程结束;如果目标值大于或数组下标,然后在该下标处查找存放小于中间元素,则在数组大于或小于的元素值进行比较中间元素的那一半中查找,而且同样从中间元素开始比较如果在某一步骤数组为空,则代表找不到图算法Dijkstra算法01用于解决单源最短路径问题的图算法给定一个加权图,该算法可以用来找出从源顶点到其它所有顶点的最短路径Floyd-Warshall算法02一种动态规划算法,用于计算所有顶点对之间的最短路径它也用于寻找给定加权图中所有顶点对之间的最短路径Bellman-Ford算法03一种用于在加权图中找出单源最短路径的算法它适用于存在负权重的图05算法的应用计算机科学领域操作系统数据库系统人工智能操作系统中的任务调度、内存管数据库系统中的查询优化、索引人工智能领域中涉及大量的算法,理等都涉及到算法,高效的算法技术等都依赖于算法,算法的优如机器学习、深度学习等,这些能够提高操作系统的性能和响应劣直接影响到数据库的性能和效算法能够使计算机具有更好的智速度率能和自主性数学领域数学分析算法在数学分析中有着广泛的应用,如数值计算、微积分等,算法的精确度和稳定性对于数学分析的结果至关重要离散概率论离散概率论中的排列组合、概率计算等都涉及到算法,算法能够帮助我们更好地理解和计算离散概率事件统计学统计学中的数据清洗、数据拟合等都依赖于算法,算法能够帮助我们更好地处理和分析大量数据日常生活领域搜索引擎搜索引擎中的网页排序、关键词匹配等都涉及到1算法,高效的算法能够提高搜索结果的准确性和相关性推荐系统推荐系统中的商品推荐、内容推荐等都依赖于算2法,算法能够帮助我们更好地理解用户的需求和兴趣金融领域金融领域中的风险评估、投资决策等都涉及到算3法,算法能够帮助我们更好地分析和预测市场趋势感谢您的观看THANKS。
个人认证
优秀文档
获得点赞 0