喜欢的点个关注 谢谢。
1、算法简介算法是解决特定问题的一系列步骤或规则。它就像是一个“烹饪秘方”,告诉计算机该如何完成任务 例如,搜索引擎使用算法来对网页进行排序,社交媒体平台使用算法来推荐内容。
算法通常由几个关键部分组成,包括输入、处理和输出。输入是算法开始工作所需的数据,处理是算法执行的步骤,输出则是算法产生的结果。
算法的设计和选择对于解决问题的效率和准确性非常重要。优秀的算法可以快速而准确地解决问题,而糟糕的算法可能会导致效率低下或错误的结果。
2、算法五大特征有穷性:有限步之后结束确定性:不存在二义性,即没有歧义可行性:比如受限于计算机的计算能力,有些算法虽然理论上可行,但实际上无法完成。输入:能被计算机处理的各种类型数据,如数字,音频,图像等等。输出:一至多个程序输出结果。算法五大特征
3、算法复杂度算法复杂度
算法复杂度分为时间复杂度和空间复杂度
时间复杂度
常见时间复杂度量级
时间复杂度用来衡量算法随着问题规模增大,算法执行时间增长的快慢;是问题规模的函数:T(n)是时间规模函数 时间复杂度主要分析T(n)的数量级 高阶无穷小T(n)=O(f(n)) f(n)是算法中基本运算的频度 一般我们考虑最坏情况下的时间复杂度关键词:代码所有与语句被重复执行的次数举例: f(n) = ^( ) + 2n + log_ T(n) = O(f(n)) = O(^( ))空间复杂度
它用来衡量算法随着问题规模增大,算法所需空间的快慢;是问题规模的函数:S(n)=O(g(n)) ;算法所需空间的增长率和g(n)的增长率相同。算发原地工作:指算法所需辅助空间为常量 O(1)4、算法复杂度举例算法时间复杂度代码举例
show code
/** 代码片段1 **/i = 1, j = 0;while (i < n - 1) { j = j + 10 * i; i++;}/** 代码片段2 **/i = 0;while ((i + 1) * (i + 1) <= n) { i = i + 1;}/** 代码片段3 **/for (i = 1; i <= n; i++) for (j = 1; j <= i; j++) for (k = 1; k <= j; k++) x++;/** 代码片段4 **/for (i = 0; i < n; i++) for (j = 0; j < m; j++) a[i][j] = 0;