多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 什么是算法 **算法就是计算或解决问题的步骤**,有以下特点: * 输入项:有一个或多个输入(无输入时,算法本身定义了初始条件) * 确切性:每一步都有明确定义 * 可行性:每一步都可以在有限时间内完成 * 有穷性:在有限步后终止 * 输出项:有一个或多个输出,没有输出的算法是毫无意义的 这就类比做菜,我们需要遵循食谱的步骤才能做出特定的料理。食材配料是输入,食谱里的翻炒加料是【步】,炒熟后即终止,最终可以吃的菜就是输出。 # 算法和程序的区别 算法是以人类能够理解的方式来描述的,不可以直接在计算机上运行;程序是以计算机能够解释的编程语言编写而成的,可以在计算机上运行。 算法需要用程序来表达给计算机。 # 运行时间的计算和表示 求得运行时间最直接的方法就是在计算机上运行一下程序,记录下其花费的时间。但是,就算是同样的算法,由于编程语言和计算机的不同,花费的时间也会产生偏差。 ### 如何计算 我们**使用『步骤』来描述运行时间,『1步』就是基本单位**。这样我们就可以**用『计算从开始到结束总共执行了多少步』来计算算法的运行时间**。 ### 如何表示 如果某算法的步数为n,则运行时间的表示方法为: O(n) 举例,把大象装进冰箱里:①打开冰箱门 ②将大象推进去 ③关上冰箱门 在这个例子里,我们的算法运行需要3步,则该算法的运行时间为: O(3) # 如何选择算法 计算机只能高速执行一些基本命令如『做加法』或『在指定内存地址上保存数据』等,将一个复杂问题转化成基本命令的组合可以是多种多样的,从而解决某一个问题的算法不止一个。 在算法的选择上,我们的考量标准也会各有不同: * 对于内存小的计算机,更偏向于在运行过程中不需要耗费太多空间资源的简单算法 * 一般来说,不考虑机器性能,我们最为重视的是算法的运行时间 # 代码库地址 [https://github.com/liuzhen153/play-algorithm-python](https://github.com/liuzhen153/play-algorithm-python)