什么是算法?
算法是用于解决问题或执行计算的过程。算法作为指令的精确列表,以基于硬件或基于软件的方式一步一步地执行指定的动作例行公事.
算法被广泛应用于IT的各个领域。在数学、计算机编程和计算机科学中,算法通常指的是解决循环问题的小程序。算法也被用作执行数据处理的规范,并在自动化系统中发挥重要作用。
一种算法可以用于对数字集合进行排序,或者用于更复杂的任务,比如在社会化媒体。算法通常从描述特定计算的初始输入和指令开始。执行计算时,该流程会产生一个输出。
算法是如何工作的?
算法通过遵循一组指令或规则来完成任务或解决问题。它们可以表示为自然语言、编程语言,伪代码、流程图和控制表。自然语言表达很少见,因为它们更模糊。编程语言通常用于表达由计算机执行的算法。
算法使用初始输入和一组指令。输入是做决策所需的初始数据,可以用数字或文字的形式表示。输入数据通过一组指令或计算处理,包括算术和决策过程。输出是算法的最后一步,通常表示为更多的数据。
例如,搜索算法将搜索查询作为输入,并通过一组指令来运行它,以便在数据库对相关项目进行查询。自动化软件充当算法的另一个例子,因为自动化遵循一组规则来完成任务。许多算法组成了自动化软件,它们都用来自动化一个给定的过程。
什么是不同类型的算法?
有几种类型的算法,都是为完成不同的任务而设计的:
- 搜索引擎算法 这个算法需要搜索字符串关键词和经营者作为输入,在相关数据库中搜索相关网页并返回结果。
- 加密算法 这种计算算法根据指定的保护数据的操作来转换数据。对称的键算法,如数据加密标准例如,使用相同的密钥加密和解密数据。如果算法足够复杂,没有密钥的人无法解密数据。
- 贪婪算法 该算法通过寻找局部最优解来解决优化问题,希望它是全局最优解。但是,它不能保证最优解。
- 递归算法 这个算法反复调用自己,直到解决一个问题。每次调用递归函数时,递归算法都用一个较小的值来调用自己。
- 回溯算法 这种算法在增量方法中找到给定问题的解决方案,并且一次解决一个问题。
- 分治算法 这个通用算法分为两部分。一部分将一个问题分成更小的子问题。第二部分解决这些问题,然后将它们结合起来产生一个解决方案。
- 动态规划算法 该算法通过将问题分成子问题来解决问题。然后存储结果以应用于将来的相应问题。
- 暴力算法 该算法盲目地迭代一个问题的所有可能的解,搜索一个函数的一个或多个解。
- 排序算法 排序算法用于根据比较运算符重新排列数据结构,比较运算符用于决定数据的新顺序。
- 哈希算法 该算法获取数据,并将其转换为带有散列法.
- 随机化算法。该算法减少了运行时间和基于时间的复杂性。它使用随机元素作为其逻辑的一部分。
算法的例子有哪些?
机器学习是算法的一个很好的例子,因为它使用多种算法来预测结果,而不需要显式编程。
机器学习使用监督学习或者无监督学习。在监督学习中,数据科学家为复杂的算法提供带标签的训练数据,并定义他们希望算法评估相关性的变量。算法的输入和输出都是指定的。无监督机器学习涉及算法,这些算法对未标记的数据进行训练,并对其进行筛选,以寻找可用于将数据点分组为子集的模式。大多数类型的深度学习,包括神经网络,都是无监督的算法。
机器学习用于人工智能也依赖于算法。然而,基于机器学习的系统可能有数据中的固有偏差为机器学习算法提供信息。这可能会导致系统不可信并且可能有害。
虽然算法广泛用于计算机科学、人工智能和机器学习场景,但它们也经常在日常生活中使用。
以下是现实生活中使用的一些算法示例:
- 遵循食谱 食谱提供了一系列实现特定目标的步骤,比如准备蓝莓松饼或者从头开始做意大利面酱。食谱旨在产生一致的结果,并帮助个人——不管他们的背景如何——通过遵循详细的说明来制作特定的菜肴。通过这种方式,配方反映了计算机科学算法,概述了产生可重复结果的步骤。
- 系鞋带 系鞋带是另一个遵循算法的例子。例如,有一个有限的步骤,导致一个适当的传统鞋带结,这通常被称为“兔子兔子”或“环,扑和拉”结。
- 面部识别 面部识别广泛用于iPhone登录以及Snapchat和照片墙过滤器。它的工作原理是使用一种算法将照片或视频中的面部特征投影到生物特征地图上。然后,该程序会在这张地图和一个人脸数据库之间寻找匹配,以确认用户的身份。如果面部识别用于Snapchat或Instagram过滤器,则不需要搜索数据库,因为该算法只需构建面部地图并对其应用过滤器。
- 交通信号 交通信号使用智能算法来管理交通流量。这些算法将不同的算法或运动(如直行或右转)分组为多个阶段,这有助于确保安全和效率。例如,当汽车司机接近红灯时,交通信号会循环通过这些相位。通过评估交通流量,算法决定车辆何时可以安全前行。
- 整理文件和论文 这是一个很好的例子,说明了算法如何用于各种任务和目的,例如按字母顺序、按字数、按日期或任何其他规范对文件进行排序。当某人根据一组指令安排他们的个人或专业文档时,他们正在应用算法思维,通过使用小任务来简化组织过程。
- 在图书馆找一本书 找到图书馆的书就像遵循一个算法或一步一步的计划。例如,有不同的方法可以做到这一点,如使用图书馆的计算机系统或在书架上寻找标签,显示该书的流派,主题或作者。不管选择哪种方法,如果能被别人解释和做到,那么就可以归为算法。