浅谈算法(简单算法)
前言
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用时间复杂度与空间复杂度来衡量。
一、特征
一个算法应该具有以下五个重要的特征:
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。
二、要素
一,数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:
1,算术运算:加减乘除等运算
2,逻辑运算:或、且、非等运算
3,关系运算:大于、小于、等于、不等于等运算
4,数据传输:输入、输出、赋值等运算
二,算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
三、评定
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。
T(n)=Ο(f(n))
因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。
四、方法
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
贪心算法是一种对某些求最优解问题的更简单、更迅速的设计技术。
一般情况下,要选出最优量度标准并不是一件容易的事,但对某问题能选择出最优量度标准后,用贪婪算法求解则特别有效。
分治法是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
(2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;
(4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。
分支界限法是一个用途十分广泛的算法,运用这种算法的技巧性很强,不同类型的问题解法也各不相同。
浅谈算法(简单算法)相关推荐
- 浅谈流处理算法 (1) – 蓄水池采样
转载自 浅谈流处理算法 (1) – 蓄水池采样 前言 现如今,"大数据 "已经不是什么新概念,"一千个人眼中有一千个大数据".社交网络,智能穿戴设备,智能家居 ...
- 浅谈Base64编码算法
一.什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码. 解码:利用编码使用的算法的逆运算,对经过编码的 ...
- 浅谈国密算法 SM1、SM2、SM3、SM4
浅谈国密算法 国密算法是我国自主研发创新的一套数据加密处理系列算法.从SM1-SM4分别实现了对称.非对称.摘要等算法功能.特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能.当然, ...
- 数据库浅谈之共识算法
数据库浅谈之共识算法 HELLO,各位博友好,我是阿呆
- 浅谈标签传播算法LPA
研究生期间第一次对相关内容做了一个汇报,查找了大量文献,发现很多的介绍对于新手来说都看不懂,这里采用最简单的方法来浅谈一下,如有错误,欢迎指正. 标签传播算法是一种基于图的半监督学习方法,其 ...
- 浅谈分布式一致性算法raft
前言:在分布式的系统中,存在很多的节点,节点之间如何进行协作运行.高效流转.主节点挂了怎么办.如何选主.各节点之间如何保持一致,这都是不可不面对的问题,此时raft算法应运而生,专门 用来解决上述问题 ...
- 浅谈关于特征选择算法与Relief的实现
一. 背景 1) 问题 在机器学习的实际应用中,特征数量可能较多,其中可能存在不相关的特征,特征之间也可能存在相关性,容易导致如下的后果: 1. 特征个数越多,分析特征.训练模型所需的时间就越 ...
- java 算法_Java 浅谈数据结构和算法
以前不管自己还是朋友在面试java工程师岗位的时候,都会被问到这样的问题: "介绍下java中的数据结构和算法". 很多朋友被问到的时候发现无从下口,甚至特别是一些初级java工程 ...
- 汇智动力学院——Java 浅谈数据结构和算法
以前不管自己还是朋友在面试java工程师岗位的时候,都会被问到这样的问题: "介绍下java中的数据结构和算法", 很多朋友被问到的时候发现无从下口,甚至特别是一些初级java工程 ...
- 浅谈百度闪电算法以及网站HTTPS(图文)
2017年10月19号,也就是今天,百度站长平台发布了最新搜索引擎算法----闪电算法. 从名字的定义我们不难看出,出这个算法要求的是快,什么快?网站加载的时间快,也就是网页完整显示出来需要多少时间, ...
最新文章
- python实现复制文件功能
- 算法训练营 重编码_您在编码训练营期间可能面临的最大挑战
- 量化策略回测BoolC
- 23种设计模式-备忘录模式
- 无痛学习ISAC(一)
- java.sql.SQLException: 列名无效
- 树莓派 python驱动蜂鸣器
- 零基础搭建外卖优惠券返利CPS小程序教程
- 聚合数据左磊:不走寻常路 做国内最好的数据聚合平台
- 怎么从安卓设备转移数据到苹果_如何将数据从安卓设备转移到iPhone12
- winform 鼠标拖动移动图片位置
- Mybatis-9.28
- 【AI视野·今日CV 计算机视觉论文速览 第231期】Mon, 5 Jul 2021
- 联系导师邮件如何写?要注意什么?
- html %3cstyle%3e 添加css,从网站适应CSS样式到一个Django香脆形式复选框
- 如何实现视频加密全平台播放
- 最新互联网乡镇综治云平台解决方案
- MySQL查询这一篇就够了
- Task com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@38ad0a (in deadlocked PoolThread) fai
- 用户旅程图与服务蓝图:到底有什么区别?
热门文章
- 苏炫杰全国计算机等级考试,高二升高三的主题班会
- Xamarin只言片语1——Xamarin下的弹框
- 计算机专业和制药工程,制药工程本科专业介绍
- 计算机网络的硬盘组成,大卸八块!编辑为你揭秘硬盘的内部结构
- FZU 2169 shadow (用了一次邻接表存边,树形DP)
- pytorch 入门学习使用逻辑斯蒂做二分类-6
- PropertyGrid仿VS的属性事件窗口
- 前端 JavaScript 条件语句优化
- Ubuntu Server最佳方案——LAMP服务器之PHP篇
- ELasticSearch安装使用过程中遇到的坑的解决方案,以及使用Kibana操作ELasticSearch