打开算法之门,解释什么是算法
14天阅读挑战赛
努力是为了不平庸~
算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~
目录
一.前言
二.什么是算法
三.算法有五个特征
四.算法的分类:
一.前言
如果说数学是皇冠上的一颗明珠,那么算法就是这颗明珠上的光芒,算法让这颗明珠更加熠熠生辉,为科技进步和社会发展照亮了前进的路。数学是美学,算法是艺术。走进算法的人,才能体会它的无穷魅力。
二.什么是算法
算法,从字面意义上解释,就是用于计算的方法,通过该这种方法可以达到预期的计算结果。目前,被广泛认可的算法专业定义是:算法是模型分析的一组可行的,确定的,有穷的规则。通俗的说,算法也可以理解为一个解题步骤,有一些基本运算和规定的顺序构成。但是从计算机程序设计的角度看,算法由一系列求解问题的指令构成,能根据规范的输入,在有限的时间内获得有效的输出结果。算法代表了用系统的方法来描述解决问题的一种策略机制。
完成同一件事的不同的算法完成的时间和占用的资源可能并不相同,这就牵扯到效率的问题。算法的基本任务是针对一个具体的问题,找到一个高效的处理方法,从而完成任务。而这就是我们的责任了。
厉害的算法长什么样子?天下武功唯快不破,很多场合也适用。厉害的算法都反馈迅速。比如你刷头条,看到的所有的推荐几乎是实时推荐的,不是预先准备的。简单地说,就是你的每点击一个内容,都会产生新的推荐,新的标签,很有生命力。
算法不能做什么?算法听起来似乎很厉害,但是还有很多事,算法还做不到。比如重要新闻的置顶、加权限、低级账号内容降权,都只能依靠人工。所以算法分发也不是把所有决策都交给机器。
瑞士著名的科学家Niklaus Wirth教授曾提出:数据结构+算法=程序。
三.算法有五个特征
一个典型的算法—般都可以抽象出5个特征:
- 有穷性:算法的指令或者步骤的执行次数和时间都是有限的。
- 确切性:算法的指令或步骤都有明确的定义。
- 输入:有相应的输入条件来刻画运算对象的初始情况。
- 输出:一个算应有明确的结果输出。
- 可行性:算法的执行步骤必须是可行的。
四.算法的分类:
根据应用分:
按照算法的应用领域,可以分为基本算法,数据结构相关算法,几何算法,图论算法,规划算法,数值分析算法,加密解密算法,排序算法,查找算法,并行算法,数值算法..…....
根据确定性分:
- 确定性算法:有限时间内完成,得到结果唯一。
- 非确定性算法:有限时间内完成,得到结果不唯一,存在多值性。
根据算法的思路分:
递推算法,递归算法,穷举算法,贪婪算法,分治算法,动态规划算法,迭代算法等。