被算法阴影支配的我——算是什么鬼

什么是算法?

现在,作为一个小白的我(曾小白),思考讨论这个问题并把它写成这篇随笔,应该是一个不自量力,很狂妄的行为。

虽然写出来的东西可能有不少谬误,会让人贻笑大方,但是要深入的去探究一下算法,还是要思考一下算法的本质是什么。

对于这个问题主要有这么几个说法:

1.算法就是解决问题的步骤

2.算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。(来自《百度百科》)

3.算法(algorithm)就是定义良好的计算过程,该过程取某个值或值的集合作为输入,并产生某个值或值的集合作为输出。(来自《算法导论》)

但是在《算法导论》开头,描述了这么一个场景,计算机是无限快的并且计算机的内存无限大且免费的。

我就想在这样的场景里,算法肯定是没意义的(那个时候时间复杂度和空间复杂度完全没有任何比较的意义了),那么这个时候算法又是一个什么东西,是不是算法就不存在了。

之后《算法导论》就提出算法是一种技术。

因为我是要在资源有限的计算机里去实现这个算法,所以我更认可算法是一种节约时间和空间资源的一种技术。·

因为资源有限,所以对一个算法的评价,要从时间复杂度和空间复杂度去看。

时间复杂度:时间复杂度是指执行算法所需要的计算工作量度(一个算法的运行时间)。

空间复杂度:是对一个算法在运行过程中临时占用存储空间大小的量度。

因为曾小白(作者)水平不咋地,只能憋出这么点似是而非的东西出来,在思考什么是算法的时候,脑子里冒出很多很哲学的想法。

大自然是不是一个存在一个算法,让万事万物运行。

人类的思想是不是算法。

……

不想了,想的脑阔痛,大家看了这篇随笔后,有想法的可以评论留言,说不定哪位大神看到了,就顺便给我们科普了

感觉写的不咋地的,那您就一笑而过好了。

原文地址:https://www.cnblogs.com/barkingpig/p/9097957.html

时间: 2024-10-18 01:42:16

被算法阴影支配的我——算是什么鬼的相关文章

程序员必须掌握的算法有哪些?

由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法.这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍.下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过不错的文章给大家.大家也可以留言区补充. 一.算法最最基础 1.时间复杂度 2.空间复杂度 一般最先

程序员必须掌握的核心算法有哪些?

由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法.这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍.下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过不错的文章给大家.大家也可以留言区补充. 一.算法最最基础 1.时间复杂度 2.空间复杂度 一般最先

必须掌握的核心算法有哪些?

由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法.这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍.下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过不错的文章给大家.大家也可以留言区补充. 一.算法最最基础1.时间复杂度 2.空间复杂度 一般最先接

iOS 程序员必须掌握的核心算法有哪些?

由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?, 说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法.这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍.下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过不错的文章给大家.大家也可以留言区补充. 一.算法最最基础 1.时间复杂度 2.空间复杂度 一般最

数据结构与算法(刺猬书)读书笔记----目录

最近在抓底层的语言基础,以前对数据结构和算法并没有太大感觉,但越往深处学就越觉得这些基础真的是要牢牢掌握住.一个简简单单的数组,深究起来都有很多学问.所以打算写个一系列的读书笔记,好好梳理一下这一块的基础知识.这本书是<数据结构预算法JavaScript描述>,是基于JavaScript的.里面大致介绍了数组.列表.栈.队列.链表.散列.集合及各种常见基础算法.作为基础读物算是很全面的.这系列读书笔记也将会跟着书里的顺序一章章的进行梳理.整个过程计划耗时2-3个月,每周更新一到两张,更新的笔记

若干排序算法简单汇总(二)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/36706131 作者:小马 一希尔排序 上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程.如果一个序列本来就是有序的,对它排序的时间复杂度是O(n).所以当序列基本有序时,插入排序排序的效率大大提高,因为减少了移动的动作. 另外,直接插入排序还有一个特点,当n比较小时,它的效率比较高. 希尔排序正是基于上面两个思想做的一种改进算法.它先将整个序列分成若干

数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

在各种数据挖掘算法中,关联规则挖掘算是比较重要的一种,尤其是受购物篮分析的影响,关联规则被应用到很多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方法,它描述的是在一个事物中物品间同时出现的规律的知识模式,现实生活中,比如超市购物时,顾客购买记录常常隐含着很多关联规则,比如购买圆珠笔的顾客中有65%也购买了笔记本,利用这些规则,商场人员可以很好的规划商品摆放问题: 为叙述方便,设R= { I1,I2 ......Im} 是一组物品集,W 是一组事

令人躁动一时且令人不安的TCP BBR算法

虽然我在这个周六(2016/12/17)荒废了一天而毫无意义的加班,我依然要在次日把上一周的点滴记录下来.以下在2016/12/18下午19时之前的文章,全属周六通宵之作.可以说,这个周末过得比较水.我已经30多个小时没有睡觉了.周六加班大半天,晚上跟同事打了两个多小时技术电话...你们能想象到跟同事电话里带着形而上的观点聊两个多小时技术,我们对工作该是多么负责啊!我并无意表达我要表现出很忙的意思,事实上我几乎从不加班,但这一次,不一样.        BBR算法是Google的大作,既然我一开

中点画圆算法

[中点画圆算法] 此算是一种圆的光栅化算法.定义以下函数: 通过上述函数,可以得到点(x,y)与半径为r的圆的关系: 已知点(Xk,Yk),我们需要知道(Xk+1,Yk).(Xk+1,Yk-1)哪一个更接近圆.决策方程如下: 如果Pk小于0,那么中点位于圆内,扫描线Yk上的像素更接近于圆.否则,中点位于圆外,应该选择Yk - 1. 参考:<计算机图形学>3.9.2 中点画圆算法 中点画圆算法