算法之初体验

初识算法

什么是算法?书上是这么说的:所谓算法就是定义良好的计算过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出数据。

我的理解:任何问题都可以转化成数学模型,算法就是将转化的数学模型求解的过程。

算法有好有坏,它的评判标准是什么呢?我认为可以从三方面进行比较:第一,结果是否符合预期;第二,时间复杂度;第三空间复杂度。其中最重要当然是要符合预期,剩下的两个方面可以根据实际情况进行取舍。

其实我们生活中处处需要算法,也一直在运用高效的算法来解决各种问题(只不过我们生活中不会这么说)。一个简单的例子:我们要出门旅游,就会选择出行地点、交通、住宿等等,我们会根据我们想要得到的一个结果来进行安排,到底采用什么的方式,,才是最优的解决方案,其实这个过程就是使用算法求解的过程。所以我认为算法就是解决问题的方法,当然这是我个人的理解,不具有什么权威和学术性,只作为观点就行分享。

为什么要用算法?

这个就不用多说了,上面我也提到过,生活中处处离不开算法,它和我们的衣食住行密不可分,也是必不可少。

为什么要研究算法?

随着社会的发展,互联网扮演的角色越来越重要,它给我们带来了海量的数据信息,我们可以通过互联网几乎完成各种各样的需求,我们也进入了一个大数据时代。计算机可以轻松完成我们人工要做不知道要多长时间的计算任务,但是如果这个超过了计算机的能力范围之外的话,那怎么才能做到呢?只有解决计算方式才能够解决,这也就是为什么要研究算法的一个主要原因。

算法的发展

算法的发展是一个漫长的过程,他有了过去,也必然会有未来。我们目前处在的时期是学习现有经典算法,改良已有算法,创造出未来的高效算法。

对于我而言,是我开始真正意义学习、了解算法的开始。

时间: 2024-10-27 16:52:58

算法之初体验的相关文章

【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验

----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafka初体验 2.1 环境准备 2.2 Kafka小试牛刀 2.2.1单个broker初体验 2.2.2 多个broker初体验 2.3 Kafka分布式集群构建 2.3.1 Kafka分布式集群构建 2.3.2 Kafka主题创建 2.3.3 生产者生产数据 2.3.4消费者消费数据 2.3.5消息的

Java8初体验(二)Stream语法详解

原文链接:http://ifeve.com/stream/ 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel aggregate operations. 我们来解读一下上面的那句话: Stream是元素的集合,这点让Stream看起来用些类似Iterator: 可以支持顺序和并行的对原Stream进行汇聚的操作: 大家可以把Stream当成一个高级版本的

Java8初体验(2):Stream语法详解

原文出处: 一冰_天锦 上篇文章Java8初体验(1):lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子.这些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequent

语音识别之初体验

一.概述 作为最自然的人机交互方式 --语音,正在改变人们的生活,丰富多媒体技术的应用.语音识别技术是语音信号处理的一个重要分支,也是近年来很火的一个研究领域.随着科技的飞速发展,语音识别不仅在桌面PC和大型工作站得到了广泛应用,而且在嵌入式系统领域也占有一席之地,如智能家居.苹果的Siri.车载语音识别系统等.相信在不久的将来,语音识别技术必定会渗透在人们生活的每个角落. 二.语音识别系统的分类 语音识别按照说话人的说话方式可以分为孤立词(IsolatedWord)识别.连接词(Connect

Node.js 网页瘸腿爬虫初体验

延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=require('fs'); // 创建一个将流数据写入文件的WriteStream对象 var outstream=fs.createWriteStream('./1.txt'); /

【转】Java8初体验(二)Stream语法详解

原文链接 http://ifeve.com/stream/ Java8初体验(二)Stream语法详解 感谢同事[天锦]的投稿.投稿请联系 [email protected]上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子.这些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Str

Memcached初体验及原理讲解

1.简介 Memcached 是一个 高性能的 分布式 内存对象缓存系统,用于动态Web应用减少数据库负载,提升性能. 2.试用场景 1.变化频繁,具有不稳定性的数据 (比如用户在线状态.在线人数..) 2.门户网站的新闻等,觉得页面静态化仍不能满足要求,可以放入到memcache中. 什么样的数据不适合放入memcached中?(银行,股票,证券系统.) 过大的数据不能放入到memcache(优酷网.) --我自己的一个小结如何决定是否使用memcached --如果是一个小网站,pv值不大,

深度学习之TensorFlow安装与初体验

深度学习之TensorFlow安装与初体验 学习前 搞懂一些关系和概念 首先,搞清楚一个关系:深度学习的前身是人工神经网络,深度学习只是人工智能的一种,深层次的神经网络结构就是深度学习的模型,浅层次的神经网络结构是浅度学习的模型. 浅度学习:层数少于3层,使用全连接的一般被认为是浅度神经网络,也就是浅度学习的模型,全连接的可能性过于繁多,如果层数超过三层,计算量呈现指数级增长,计算机无法计算到结果,所以产生了深度学习概念 深度学习:层数可以有很多层,但是并不是全连接的传递参数,如上图中右边是一个

研一前的暑假,深度学习初体验

????在五月二十七号左右,再次来到一所新的城市,即将在这里度过我研究生的三年,之所以来这么早,是因为希望研究生阶段,能够跟着一个研究方向,自己比较感兴趣的导师.找的第一个导师比较偏学术一些,而我又希望自己在研究生阶段能够有一定的项目经历,所以在经过思考后,我和老师表明了我的想法,老师也表示理解,和我推荐了其他的导师.在找导师的过程中,发现比较热门的导师的特点有以下几点.在校刚来的几位导师中,比较年轻的导师无论能力还是学术都比较强,所有也很快就定下了人选.在来之前,自己也大致确立了方向,大数据.