我们要想开发出高效率的软件就要建立合适的数据结构和设计较好的算法来提高程序执行效率,而学习数据结构和算法的目的就是提高程序执行效率。 “算法+数据结构=程序”这是某位科学家的观点。
首先是数据结构,数据结构有俩种1、逻辑结构2、物理结构。
数据与数据之间的逻辑结构有三种:
1、 线性结构:结构中的数据元素之间存在着一对一的线性关系。
除了第一个和最后一个数据元素外,每个数据元素只有一个前驱和一个后继数据元素

2、 树结构:结构中的数据元素之间存在着一对多的层次关系。
除根结点外,每个数据元素只有一个前驱数据元素,可有0个或若干个后继数据元素

3、 图结构:结构中的数据元素之间存在着多对多的任意关系。
每个数据元素可有0个或若干个前驱数据元素和0个或若干个后继数据元素

物理结构:简述了数据与数据之间的逻辑结构如何存储在物理存储器中。通常的存储方式有俩种:一、数组的存储结构和顺序表的存储结构。二、链表的存储结构。
算法是对一些特定问题的求解步骤的描述他的指令是有限的序列,每一条指令都是一个或多个操作,一个算法应该具有以下五个重要特性:
⑴ 有穷性:一个算法应包含有限个操作步骤。即一个算法在执行若干个步骤之后应该能够结束,而且每一步都在有限时间内完成
⑵ 确定性:算法中的每一步都必须有确切的含义,不能产生二义性。
⑶ 可行性:算法中的每一个步骤都应该是能有效地执行,并得到确定的结果。
⑷ 输入:所谓输入,是指在算法执行时,从外界取得必要的数据。计算机运行程序的目的是为了进行数据处理,在大多数情况下,这些数据需要通过输入得到。有些情况下,数据已经包含在算法中,算法执行时不需要任何数据,所以一个算法可以有零个或多个输入。
⑸ 输出:一个算法有一个或多个输出,这是算法进行数据处理后的结果。没有输出的算法是毫无意义的。
算法的这些特性可以约束程序设计人员正确地书写算法,从而达到求解问题的预期效果。
还有就是算法设计的要求,算法设计的好坏关乎程序的执行效率,算法的设计必须满足下列四个要求:
⑴ 正确性: 正确性的含义是算法对于一切合法的输入数据都能够得出满足要求的结果,事实上要验证算法的正确性是极为困难的,因为通常情况下合法的输入数据量太大,用穷举法逐一验证是不现实的。所谓的算法正确性是指算法达到了测试要求。
⑵ 可读性: 算法的可读性是指人对算法阅读理解的难易程度,可读性高的算法便于交流,有利于算法的调试和修改。通常增加算法的可读性是在书写算法时采用按缩进格式书写、分模块书写等方法可增加算法的可读性。
⑶ 健壮性: 对于非法的输入数据,算法能给出相应的响应,而不是产生不可预料的后果。
⑷ 效率与低存储量需求: 效率指的是算法的执行时间。对于解决同一问题的多个算法,执行时间短的算法效率高。存储量需求指算法执行过程中所需要的最大存储空间。存储量需求越小的算法效率越高。
好了,数据结构和算法大概就是讲这些东西,以上内容大部分都是来自课程的

数据结构和算法的基本概念相关推荐

  1. 考研数据结构笔记--数据结构和算法的基本概念

    考研数据结构笔记--数据结构和算法的基本概念 数据结构的基本概念 算法的基本概念 数据结构的基本概念 数据 数据是对客观事物的符合表示,在计算机科学中是指所有能输入到计算机中并且被计算机程序处理的符合 ...

  2. 【python版本数据结构与算法】基本概念(10-1)

    参考书: <数据结构与算法(Python语言描述)> 最原始的方法:枚举法 那么数据结构和算法是什么?答曰:兵法! 我们可以不看兵法在战场上肉搏,如此,可能会胜利,可能会失败.即使胜利,可 ...

  3. 数据结构开山篇——数据结构和算法的基本概念

    绪论 文章目录 绪论 为甚要学习数据结构? 数据结构研究的内容 计算机进行数值计算的研究过程 计算机如何进行非数值运算 基本概念和术语 数据 数据元素 数据项 数据对象 数据构成 数据结构 数据类型 ...

  4. 天勤计算机考研高分笔记(一)绪论4数据结构与算法的基本概念

    1.3.1数据结构的基本概念 1.数据 数据是一种对客观事物的符号表示,是可以输入计算机中,并被计算机程序处理的符号的总称.(整数,实数,字符串) 2.数据元素(数据项< <数据结构,数据 ...

  5. 数据结构与算法基础 基本概念

    文章目录 数据结构研究内容 基本概念和术语 数据 (Data) 数据元素(Data Element) 数据项 (Data Item) 数据对象(Data Object) 数据结构(Data Struc ...

  6. java 中的数据元素的定义_Java数据结构和算法的基础概念

    一.基本的概念 1.数据            是客观描述事物的符号,是计算机中操作的对象,是能被计算机识别.并输入给计算机处理的集合 2.数据元素        是组成数据的,有一定意义的基本单位. ...

  7. 数据结构与算法的基本概念

    数据的基本概念: 数据:是描述客观事物的符号,是计算机可以操作的对象,能被计算机识别. //可以这么说二进制文件都可以称为数据 数据元素:组成数据的,有一定意义的基本单位 //人类-人 数据项:数据不 ...

  8. 学习数据结构和算法前瞻

    我并非计算机科班出身,以前只对C.java.Matlab.Python语言有粗略的了解,以前写代码的时候只会考虑功能能实现就行了,并不考虑性能方面的问题,对数据结构与算法从未学习过,更不了解什么时间复 ...

  9. 前端如何准备数据结构和算法

    一.导读 据我了解,前端程序员有相当一部分对"数据结构"和"算法"的基础概念都不是很清晰,这直接导致很多人在看到有关这部分的内容就会望而却步. 实际上,当你了解 ...

最新文章

  1. 编译实验(三)目标代码生成
  2. 创建集群版的Eureka注册中心
  3. Pandas数据排序——【按索引排序sort_index()方法、按值排序sort_value()方法】
  4. Qt中绑定信号槽之后,信号槽无效
  5. 自学机器学习_我用来自学机器学习的最佳资源
  6. linux连接sftp服务器,如何在Linux上配置SFTP服务器
  7. Python内置函数(10)——float
  8. 博客地址迁移www.xiangquba.cn
  9. segment fault 至core dump的原因
  10. 黑马程序猿————OC在Foundation框架结构和字符串
  11. M2提示加载客户端版本信息失败的解决办法
  12. 浅析内网沟通软件有什么特点
  13. 20135202闫佳歆——信息安全系统设计基础第七周学习总结
  14. linux命令之cp:略过目录
  15. 阿波罗登月计算机技术,你知道吗,阿波罗登月用的计算机还不如你家计算器!...
  16. axios拦截器、ElementUI组件的使用
  17. PHP 验证码无法显示的问题
  18. 数字信号处理:视频-15-FFT计算线性卷积
  19. 大数据如此火爆 如何看待大数据行业发展趋势
  20. 慕学在线--2、开发准备及布署上线

热门文章

  1. 51nod1821-最优集合【贪心】
  2. CF741D-Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths【树上启发式合并】
  3. 【DP】Rotating Substrings(CF1363F)
  4. 【结论】只不过是长的领带(luogu 6877)
  5. 【线段树】二进制(luogu 4428)
  6. 小麦亩产一千八(jzoj 3461)
  7. 【图论】【高精】产生数(ssl 1021/ luogu 1037)
  8. 洛谷P1120小木棒 爆搜+剪枝
  9. MySQL avg()函数
  10. HtmlParser提取网页中的纯文本信息