步步为营——算法初阶 1.算法概述

-------------------------------天禄貔貅  王冬冬 技术博客-------------------------------

1.1什么是算法?

字面义:算法就是用于计算的方法,通过这样的方法能够达到预期的结果。

专业定义:算法是模型分析的一组可行的、确定的和有穷的规则。

从程序设计角度:算法由一系列求解问题的指令构成,可以依据规则的输入在有限的时间内获得有效的输出结果。

算法的五个特征:有穷性、确切性、输入、输出、可行性。

1.2 算法的发展历史

周髀算经——>9世纪“算法”——>欧几里得算法(碾转相除法)

1.3 算法的分类

依照顾用来分类:基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等

依照结果的确定性分类:确定性算法和非确定性算法

依照算法的思路分类:递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法

1.4 算法相关概念的区分

1.算法与公式的关系:公式是一种算法,但算法绝不全然等于公式,算法的形式能够更复杂,解决的问题更广泛

2.算法与程序的关系:学习一门程序语言非常easy。正确合理的运用算法来编写却是非常难的

3.算法与数据结构的关系:数据结构是数据的组织形式,能够用来表征特定的对象数据。算法往往依赖某种数据结构。数据结构+算法+程序语言=程序

1.5 算法的表示

自然语言表示、流程图表示、N-S图表示和伪代码表示

1.6 算法的性能评价

时间复杂度:算法运行所须要耗费的时间,时间越短算法越好。能够对算法代码进行评估。从而得到时间复杂度

空间复杂度:算法程序在计算机中运行所须要消耗的存储空间。可分为

(1)程序保存所须要的存储大小。也就是程序的大小

(2)程序在运行过程中所须要消耗的存储空间资源。比如程序运行过程中中间变量资源

-------------------------------天禄貔貅
 王冬冬 技术博客
-------------------------------

时间: 2024-11-05 19:04:22

步步为营——算法初阶 1.算法概述的相关文章

阿里云人工智能小Ai是比深度学习更高阶的算法

(上图为阿里云人工智能科学家闵万里) 4月8日,在<我是歌手>的第四季总决赛中,出现了一个不速之客,这就是扬言能预测歌王的阿里云人工智能机器人小Ai.开场前,小Ai预测黄致列夺冠概率第一,尽管最终的歌王是李玟,但小Ai成功预测了前三名. 在了解阿里云人工智能机器人小Ai的基本运作过程后,记者认为小Ai的算法其实已经不仅是深度学习,而是在深度学习之上的更高阶算法,并就此向阿里云人工智能科学家闵万里求证,得到的回复:是的. 小Ai算法高阶在哪里? 尽管阿里云方面没有透露关于小Ai更多算法方面的信息

跟着小甲鱼学算法之算法初体验(1)

从网上下载了小甲鱼的算法与数据结构视频,打算把这个系列跟着视频学完.以达到对算法有初步的了解 什么是算法? 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指条表示一个或者多个操作.(简而言之,算法就是做各种事情的技巧和方式 ) 记得小学时,老师为大家讲过德国大数据家高斯的故事,内容是高斯的老师要求全班同学从1加到100求出和.当大家埋头苦算时,高斯用很短的时间就得到了结果.高斯用的方法就是1+100,2+99,3+98...都得到101,那么从1加到100的和就有50

1.sql_初阶(理论)

SQL 基础-高级 我们怎么存储数据 以前用各种书籍载体在上面按照特定的格式记录信息,就像现在的excel表格, 但是,如果当数据有几千万条的时候,查询就非常慢了 所以我们需要一种高效的解决方案:数据库(其实也是操作一种特殊格式的文件) 数据库不仅仅要存储数据,还要提供方便快捷的查询,修改,删除等功能 需要做到:海量存储,快速查询,多用户同时查询,用户访问安全性,数据存储完整性(正确性)等 ? 什么是数据库 数据的仓库,货仓里有很多货架(库文件),货架有不同的种类,不同的架子放不同的货物, 管理

平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】

平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是将有向树的所有边看成无向边形成的树状图.树是一种递归的数据结构,所以我们研究树也是按照递归的方式去研究的. 2.什么是二叉树. 我们给出二叉树的递归定义如下: (1)空树是一个二叉树. (2)单个节点是一个二叉树. (3)如果一棵树中,以它的左右子节点为根形成的子树都是二叉树,那么这棵树本身也是二叉

Nodejs初阶之express

Nodejs初阶之express 2014-02-28 23:00 by 聂微东, 85627 阅读, 26 评论, 收藏, 编辑 PS: 2014/09/24 更新<Express 4.X 启航指南>,欢迎阅读和评论:) 老规矩,开头部分都是些自娱自乐的随想,想到哪写到哪... 到今天俺已经在俺厂工作俩年零几天了,工作以来头一回在一家企业工作超俩年,对于这俩年确实只有满满的成就感,不管是工作还是生活...写到这句突然又想写篇这俩年的总结,等这篇文章发了之后就着手整理吧,吼吼. 那篇<n

【转】Nodejs初阶之express

老规矩,开头部分都是些自娱自乐的随想,想到哪写到哪... 到今天俺已经在俺厂工作俩年零几天了,工作以来头一回在一家企业工作超俩年,对于这俩年确实只有满满的成就感,不管是工作还是生活...写到这句突然又想写篇这俩年的总结,等这篇文章发了之后就着手整理吧,吼吼. 那篇<node.js 初体验>好像才发生在前几月,没想到时间已过两年有多.且看到文章末尾处那句: “这篇文章只会是一个开始” 令俺脸红掩面,尼玛真没想到这一开始就开始了两年多,这让老夫情何以堪... 好吧,反正脸皮厚已不是俩三天,让俺装傻

排序算法之 Java插入排序算法

package net.qh.test.sort; import java.util.ArrayList; import java.util.Calendar; import java.util.List; /** * Created by Administrator on 2016/03/01. */ public class Insert { public int[] sort(int[] arr){ if ( arr == null || arr.length <= 1 ){ return

普里姆算法,克鲁斯卡尔算法,迪杰斯特拉算法,弗洛里德算法

做数据结构的课程设计顺便总结一下这四大算法,本人小白学生一枚, 如果总结的有什么错误,希望能够告知指正 普里姆算法如图所示prim 找出最短的边,再以这条边构成的整体去寻找与之相邻的边,直至连接所有顶点,生成最小生成树,时间复杂度为O(n2) 克鲁斯卡尔算法如图所示kruskal 克鲁斯卡尔算法,假设连通网N=(N,{E}),则令最小生成树的初始状态为只有n个顶点而无边的非连通图T=(V,{}),图中每个顶点 自成一个连通分量.在E中选择代价最小的边,若该边依附的定顶点落在T中不同的连通分量上,

静态频繁子图挖掘算法用于动态网络——gSpan算法研究

摘要 随着信息技术的不断发展,人类可以很容易地收集和储存大量的数据,然而,如何在海量的数据中提取对用户有用的信息逐渐地成为巨大挑战.为了应对这种挑战,数据挖掘技术应运而生,成为了最近一段时期数据科学的和人工智能领域内的研究热点.数据集中的频繁模式作为一种有价值的信息,受到了人们的广泛关注,成为了数据挖掘技术研究领域内的热门话题和研究重点. 传统的频繁模式挖掘技术被用来在事务数据集中发现频繁项集,然而随着数据挖掘技术应用到非传统领域,单纯的事务数据结构很难对新的领域的数据进行有效的建模.因此,频繁