算法英文名为“Algorithm”,这是在制定解决任何特定问题的方法之前概述的一系列规则/说明,是解决问题的保证。例如,以铁路出入口为例。
算法应:
定义明确且顺序井井有条-算法中提供的指令应易于理解和定义。
具有明确的操作,即算法的每个步骤应足够简单,以至于可能不需要任何进一步的简化
进行有效的可计算操作。
理解算法
有一个传感器感应火车的到来,其输出可能是2个结果
火车到了
火车没有到
第一个结果的结果将传递到一个操作,在该操作中建议关闭闸门,同时将第二个结果的结果发送给初始语句再次进行测试。此外,对作为第一个条件的结果的动作输出进行测试,以检查火车是否已完全驶离。如果答案是肯定的,则闸门打开,而如果否定的,则闸门保持关闭。
算法如何使工作变得容易?
众所周知,这是解决问题的计划。好吧,如果我们没有计划,那么我们解决复杂问题的方法可能会在第一次尝试中失败,即使解决了问题,也很难将其作为该问题的最佳解决方案。
另一方面,如果我们在解决任何问题之前先创建算法,那么说我们创建了很少的算法,并根据它们提供的最佳解决方案对其进行了分类,则可以保证解决给定的问题。这就是为什么在解决任何问题之前,到处都是先创建算法的原因。
子集/构建块和算法的工作
这些年来,已经证明可以仅从三个构造块来设计算法:
序列
选拔
迭代
可以使用算法做什么?
它是解决问题的一个功能或一系列功能,我们可以使用一种算法来解决最简单的问题以及世界上最棘手的问题。在“时间复杂度”的帮助下,我们认为它是最佳选择。
简单来说,时间复杂度是描述任何给定算法运行时间的一种方式。有最小运行时间(称为“ O”),平均运行时间和最坏情况下的运行时间O(N)(也称为“ O”)。
计算机科学家和软件工程师喜欢思考关于算法的知识,因为他们对评估和建立最佳实践的集合感兴趣,这样就不必从头开始研究类似问题的每个实例,以下是解决特定问题时可能会遇到的不同时间复杂性的示例。
这也意味着一个问题可能有多种解决方案,但我们需要通过计算算法的时间复杂度来选择最佳方案。在面试中,系统会要求您解决问题,此外,系统还会要求您优化问题,即减少算法的运行时间。例如,您可能编写了带有2个“ for”循环(迭代)的代码。
算法的优势
它是对任何给定问题的解决方案的逐步表示,这使它易于理解。
它使用确定的过程。
它独立于任何编程语言,因此即使没有编程知识,任何人都可以轻松理解。
每个步骤都有其自己的逻辑顺序,因此易于调试。
通过使用算法,问题被分解为较小的部分或步骤,因此,程序员更容易将其转换为实际程序
结论
因此,正如我们看到的有关算法及其各个方面的介绍性描述一样,我们已经看到可以使用不同的方法来解决特定问题,并且Big-O和Time复杂度是帮助我们选择最佳解决方案的参数。通过探索大量算法,将从根本上增强算法分析能力,并且应该能够轻松地设计和运行基于算法的分析。