算法:
完成一个任务的具体步骤和方法
解决问题的一种方法或一个过程
有穷指令、无二义性等等
任务:
对各类具体问题设计良好的算法及研究设计算法的规律和方法。
常用的算法有:
穷举搜索法、递归法、回溯法、贪心法、分治法、分支限界法等。
后续更新:
递归与分治策略、动态规划、贪心算法、回溯法、分支限界法
LeetCode/算法(java)
DB和OS中的算法:
搜索算法:深度搜索、广度搜索、最短路径、查找树
排序算法:插入排序、快速排序、希尔排序、归并排序、堆排序、基数排序、外排序
先来先服务、短时间优先、时间片轮转调度、页面置换等等
性质:
输入:有0个或多个外部提供的量作为算法的输入。
输出:算法产生至少一个量作为输出。
确定性:组成算法的每条指令是清晰,无歧义的。
有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。
可行性:一个算法是能行的。
程序=算法+数据结构
程序不等于算法,程序可以无限执行没有终止算法不可以
算法复杂性 = 算法所需要的计算机资源
复杂性函数:C=F(N,I,A)
C——复杂性
N——问题的规模
I——算法的输入
A——算法本身
(通常,让A隐含在复杂性函数名当中)
算法复杂性 = 算法所需要的计算机资源
1、算法的时间复杂性(time complexity)
需要时间资源的量称为时间复杂性
记为: T=T(N,I)
2、算法的空间复杂性(space complexity)
需要的空间资源的量称为空间复杂性
记为: S=S(N,I)
算法-绪论
最新推荐文章于 2024-07-08 22:12:26 发布