还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2023REPORTING《高一数学算法》ppt课件2023•算法简介•数学算法基础目录•数学算法的应用•算法复杂度分析CATALOGUE•算法优化与改进•实践案例分析2023REPORTINGPART01算法简介算法的定义总结词算法是一系列明确的、有穷的指令的集合,它能够完成特定的任务,并按照一定的顺序执行详细描述算法是解决问题的明确和系统的方法,它具有有穷性、确定性、输入性、输出性和可行性五个基本特性算法的执行过程是按照一定的顺序进行的,每个步骤都是精确和明确的,没有歧义算法的特点总结词算法具有有穷性、确定性、输入性、输出性和可行性五个基本特性详细描述有穷性是指算法必须在有限的时间内完成执行;确定性是指算法的每个步骤都必须明确和精确,没有歧义;输入性是指算法需要从外部获取必要的信息或数据;输出性是指算法执行后会产生结果或输出;可行性是指算法在实际中是可以实现的算法的分类总结词根据不同的分类标准,算法可以分为不同的类型详细描述根据算法的设计方法,可以分为迭代算法和递归算法;根据算法的功能,可以分为排序算法、查找算法、图算法等;根据算法的实现语言,可以分为伪代码、高级语言和汇编语言实现的算法等2023REPORTINGPART02数学算法基础算术运算加法运算减法运算乘法运算除法运算介绍加法的定义,如何介绍减法的定义,如何介绍乘法的定义,如何介绍除法的定义,如何进行加法运算,以及加进行减法运算,以及减进行乘法运算,以及乘进行除法运算,以及除法运算的基本性质法运算的基本性质法运算的基本性质法运算的基本性质逻辑运算01020304逻辑与运算逻辑或运算逻辑非运算逻辑异或运算介绍逻辑与运算的定义,如何介绍逻辑或运算的定义,如何介绍逻辑非运算的定义,如何介绍逻辑异或运算的定义,如进行逻辑与运算,以及逻辑与进行逻辑或运算,以及逻辑或进行逻辑非运算,以及逻辑非何进行逻辑异或运算,以及逻运算的基本性质运算的基本性质运算的基本性质辑异或运算的基本性质控制结构顺序结构循环结构介绍顺序结构的定义,如何实介绍循环结构的定义,如何实现顺序结构,以及顺序结构的现循环结构,以及循环结构的基本性质基本性质选择结构嵌套结构介绍选择结构的定义,如何实介绍嵌套结构的定义,如何实现选择结构,以及选择结构的现嵌套结构,以及嵌套结构的基本性质基本性质2023REPORTINGPART03数学算法的应用排序算法冒泡排序通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成选择排序在未排序的序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾以此类推,直到所有元素均排序完毕插入排序将待排序的元素插入到已经排好序的有序序列中,从而得到一个新的、个数加一的有序序列,算法适用于少量数据的排序,时间复杂度为On^2查找算法线性查找分块查找从数据结构的一端开始搜索,直至找将数据分成若干块,分别对各块进行到所查元素为止,一般采用顺序查找线性查找,时间复杂度为On^2算法,时间复杂度为On二分查找在有序数据集中查找某一特定元素的搜索过程采用折半查找算法,时间复杂度为Ologn数学问题求解010203代数问题几何问题概率统计问题通过代数运算和方程求解通过几何图形和几何性质通过概率和统计方法求解数学问题,如求解一元二求解数学问题,如求解平数学问题,如求解概率分次方程、求解线性方程组面几何问题、求解立体几布、统计分析等等何问题等2023REPORTINGPART04算法复杂度分析时间复杂度时间复杂度定义平方时间复杂度On²时间复杂度是评估算法运行时间随输入规模增长而增长的算法运行时间与输入规模的平方成正比,常见于嵌套循环量级,通常用大O表示法表示结构常数时间复杂度O1立方时间复杂度On³算法运行时间不随输入规模变化,始终为常数算法运行时间与输入规模的立方成正比,常见于三维数组或矩阵运算线性时间复杂度On对数时间复杂度Olog n算法运行时间与输入规模成线性关系,随着n增大,运行算法运行时间与输入规模的对数成正比,常见于二分查找时间也线性增长等算法空间复杂度0102030405空间复杂度定义常数空间复杂度线性空间复杂度二次空间复杂度对数空间复杂度O1On On²Olo…空间复杂度是评估算法所算法所需存储空间不随输算法所需存储空间与输入算法所需存储空间与输入算法所需存储空间与输入需存储空间随输入规模增入规模变化,始终为常数规模成线性关系,随着n增规模的平方成正比,常见规模的对数成正比,常见长而增长的量级,也用大O大,存储空间也线性增长于二维数组或矩阵运算于平衡二叉树等数据结构表示法表示复杂度分析的应用比较不同算法通过比较不同算法的时间复杂度和优化算法性能空间复杂度,可以评估算法的优劣,选择适合特定问题的最佳算法通过分析算法的时间复杂度和空间复杂度,可以了解算法的性能瓶颈,进而优化算法以提高效率问题规模限制了解算法的复杂度有助于确定问题的规模限制,避免因输入规模过大而导致超时或内存溢出等问题2023REPORTINGPART05算法优化与改进贪心算法贪心算法是一种在每一步选择中都采取当前情况下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法贪心算法并不一定能够得到全局最优解,但在很多情况下能够得到不错的近似最优解贪心算法可以应用于诸如找零钱、最小生成树、背包问题等场景分治算法分治算法是将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并分治算法的典型例子包括归并排序和快速排序等动态规划动态规划是一种通过把原问题在动态规划中,每个子问题的动态规划的典型应用包括背包分解为相对简单的子问题的方解都被存储起来,以便在解决问题、最短路径问题和序列比式来求解复杂问题的方法更高级别的子问题时重复使用对等2023REPORTINGPART06实践案例分析冒泡排序算法实现冒泡排序算法原理冒泡排序是一种简单的排序算法,通过重复地遍历待排序的数列,比较相邻的两个元素,若它们的顺序错误则交换它们,直到没有需要交换的元素为止冒泡排序算法步骤比较相邻的两个元素,若它们的顺序错误则交换它们-重复步骤1,直到没有需要交换的元素为止冒泡排序算法实现冒泡排序算法实现示例```pythondef bubble_sortarr冒泡排序算法实现n=lenarrfor iin rangenforj in range0,n-i-1冒泡排序算法实现if arr[j]arr[j+1]arr[j],arr[j+1]=arr[j+1],arr[j]冒泡排序算法实现return arr```二分查找算法实现二分查找算法原理二分查找算法步骤二分查找是一种在有序数组中查找特定元素的搜索算查找最大(或最小)的中间元素-如果中间元素正法搜索过程从数组的中间元素开始,如果中间元素好是要查找的元素,则搜索过程结束-如果某一特正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元中间元素的那一半中查找,而且跟开始一样从中间元素开始比较-如果在某一步骤数组为空,则代表找素开始比较如果在某一步骤数组为空,则代表找不不到到这种搜索算法每一次比较都使搜索范围缩小一半二分查找算法实现二分查找算法实现示例```pythondef binary_searcharr,low,high,x二分查找算法实现01if high=low02mid=high+low//2二分查找算法实现•if arr[mid]==x二分查找算法实现return mid01elif arr[mid]x02return binary_searcharr,low,mid-1,x03二分查找算法实现elsereturn binary_searcharr,mid+1,high,x二分查找算法实现else1return-12```3斐波那契数列求解•斐波那契数列定义斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列
0、
1、
1、
2、
3、
5、
8、
13、
21、
34、……在数学上,斐波那契数列以递归的方法定义F0=0,F1=1,Fn=Fn-1+Fn-2(n≥2,n∈N*)斐波那契数列求解斐波那契数列求解示例01```python02def fibonaccin03斐波那契数列求解if n=0return输入错误!请输入一个正整数斐波那契数列求解elif n==1return0elif n==2斐波那契数列求解•return1斐波那契数列求解elsea,b=0,1for iinrange3,n+1斐波那契数列求解•a,b=b,a+b斐波那契数列求解return b```2023REPORTINGTHANKS感谢观看。
个人认证
优秀文档
获得点赞 0