很多开发者都知道“程序=数据结构+算法”这个著名的公式,并不真正明白算法的定义或概念。究竟什么是算法呢?从字面意义上理解,算法即用于计算的方法,通过这种方法可以达到预期的计算结果。

1.算法的特征

有穷性:算法的指令或步骤的执行次数是有限的,执行时间也是有限的。确切性:算法的每一个指令或步骤都必须又明确的定义和描述。输 入:一个算法应该又相应的输入条件,用来刻画运算对象的初始情况。输 出:一个算法应该又明确的结果输出。这是容易理解的,因为没有得到结果的算法毫无意义。可行性:算法的执行步骤必须是可行的,且可以在有限时间内完成。

2.算法分类

1、按照应用来分类

按照算法的应用领域,即解决的问题,算法可以分为基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等。

2、按照确定性来分类

按照算法结果的确定性来分类,算法可以分为确定性算法和非确定性算法。

  • 确定性算法:这类算法在有限的时间内完成计算,得到的结果是唯一的,且经常取决于输入值。
  • 非确定性算法:这类算法在有限的时间内完成计算,单是得到的结果往往不是唯一的,即存在多值性。

3、按照算法的思路来分类

按照算法的思路来分类,算法可以分为递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法等多种算法。

3.算法与数据结构的关系

数据结构是数据的组织形式,可以用来表征特定的对象数据。在计算机程序设置中,操作的对象是各式各样的数据,这些数据往往拥有不同的数据结构,如数组、结构体、联合、指针和链表等。因为不同的数据结构所采用的处理方法不同,计算的复杂度也不同,因材算法往往依赖于某种数据结构。也就是说,数据结构的算法实现的基础。(程序=数据结构+算法)

4.算法的性能评价

一个算法的优劣往往通过算法复杂度来衡量,算法复杂度包括时间复杂度和空间复杂度两个方面。

1、时间复杂度

时间复杂度即通常所说的算法执行所需要耗费的时间,时间越短,算法越好。一个算法执行的时间往往无法精确估计,通常需要在实际的计算机中运行才能够知道。但是,也可以对算法的代码进行估计,而得到算法的时间复杂度。

2、空间复杂度

空间复杂度是指算法程序在计算机中执行所消耗的存储空间。空间复杂度可以分为如下两个方面。

1)程序保存所需要的存储空间,即程序大小。

2) 程序在执行中所需要小号的存储空间资源,如程序在执行过程中的中间变量等。

一般来说,程序的大小越小,执行过程中消耗的资源越少,这对程序就越好。

算法与数据结构_数据结构与算法专题--算法基本概念相关推荐

  1. 名词解释 算法的有限性_数据结构复习之【数据结构和算法概念】

    一.概念 数据结构就像是一个催化剂,如果没有原料是无用的,单是有了算法就能帮算法更快的实现任务: 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,简单地说是数据之间的各种关系的集合. 程 ...

  2. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...

    本系列文章已转至 机器学习的优化器​zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...

  3. em算法 实例 正态分布_【机器学习】EM算法详细推导和讲解

    今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...

  4. 数据结构排序算法实验报告_数据结构与算法-堆排序

    堆排序 堆排序是指利用堆这种数据结构所设计的一种排序算法.堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子节点的键值或索引总是小于(或者大于)它的父节点,堆排序的时间复杂度为O(nlogn).( ...

  5. 数据结构排序算法实验报告_[数据结构与算法系列]排序算法(二)

    我的上一篇文章向大家介绍了排序算法中的冒泡排序.插入排序和选择排序.它们都是平均时间复杂度为 O(n^2) 的排序算法,同时还为大家讲解了什么是原地排序和什么是排序的稳定性.下图是这三种算法的比较,不 ...

  6. a*算法的时间复杂度_数据结构(1)——算法和时间复杂度

    Data Structure 1 算法和时间复杂度 01.什么是数据结构? 程序设计 = 数据结构 + 算法 数据结构是关系,是数据元素相互之间存在的一种或多种特定关系的集合. 数据结构和算法凌驾于任 ...

  7. 名词解释 算法的有限性_数据结构与算法期中考试卷(含答案)

    玉林师范学院期中课程考试试卷 (2010--2011学年度第一学期) 命题教师:刘恒 命题教师所在系:数计系 课程名称:数据结构与算法 考试专业:信计 考试年级:09级 一.单项选择题(每题2 分,共 ...

  8. #中队列的数据结构_数据结构与算法拓展(一)

    栈与队列 申明:由于篇幅限制,文章可能有些简略,如果大家想要详细了解,请一定要百度一下,并阅读例题,完成习题 绪言:计算机科学在过去的数十年内发展飞速,各种新颖的技术纷至沓来:5G,VR,AI:大数据 ...

  9. 数据结构与算法python描述_数据结构与算法——Python语言描述.pdf

    数据结构与算法--Python语言描述.pdf 欢迎加入非盈利Python编学习交流程QQ群783462347,群里免费提供500+本Python书籍! 欢迎加入非盈利Python编程学习交流程QQ群 ...

最新文章

  1. 解决tensorflow报错ValueError: Variable conv1/weights already exists, disallowed.
  2. 【ORACLE技术嘉年华PPT】MySQL压力测试经验
  3. mysql命令行语句_MySql命令行命令和SQL语句
  4. node 常见的一些系统问题
  5. SVG基本形状及样式设置
  6. 最佳买卖股票时机含冷冻期
  7. WPF 用装饰器制作抽屉效果
  8. 文件夹错误 分配句柄_重启数据库遇到错误ORA27154,ORA27300,ORA27301,ORA27302
  9. Python关于中文字符前面的u(转载)
  10. 离开载具_绝地最强载具登场?
  11. SharePoint 2013 Ajax 造成页面无法编辑
  12. Android 四大组件学习之ContentProvider二
  13. 远程桌面管理工具RDCMan
  14. Segmentree beats!---吉如一线段树学习笔记
  15. 威金病毒完全解决方案篇
  16. FCPX注释解说文字标题插件:motionVFX mCallouts Simple 2
  17. 【Unity3D 问题总结】Failed to import package with error: Couldn‘t decompress package
  18. AltiumDesigner中plane和layer区别
  19. html留言板原理,js实现留言板
  20. GSM Arena 魅族mx四核评测-个人翻译

热门文章

  1. vue中渲染对象中属性时显示未定义_揭开 vue 背后的秘密(1)
  2. G.Eating Together(LIS,LDS)
  3. P1803 凌乱的yyy / 线段覆盖
  4. 【1024创造营】精彩课程回顾
  5. 评审恩仇录——我为什么愿意执行代码评审
  6. 分享实录 | 深度学习技术红利下的代码补全
  7. UI设计:浅议内滚动布局
  8. 实例比较虚幻引擎4与光线追踪渲染
  9. 那一年,整个游戏界差点因为一款垃圾游戏,而一同被“埋葬”
  10. 华为云ModelArts完整流程引导——贴心的细致-帮你1小时完成整个训练过程