数据结构与算法 _ 基本概念

一、数据结构的基本概念

1、基本概念与目的

  • 数据结构(Data Structure)概念

                  数据结构是研究组成数据的数据元素的关系的学科。

  •  数据结构研究目的

                  通过研究数据元素的关系,帮助我们在开发软件的时候更好的组建数据模型,让数据在内存中的操作更加的流畅高效。

                             逻辑关系                       存储关系                           运算关系

  • 数据

           数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。

  • 数据元素

        数据元素是数据的基本单位,又称为记录(Record)。

  • 数据项

        数据元素由若干数据项组成,数据项是数据中国的最小单位。

  • 数据类型

        数据类型是对数据元素取值范围与运算的限定。

 

  • 数据之间的相互关系,包括三种关系:

       (1)逻辑结构

                  表示数据元素之间的抽象关系(如邻接关系、从属关系)。

                  有四种基本的逻辑结构:集合结构、线性结构、树形结构、图状结构

                            

                         

       (2)存储结构

                  数据的存储结构在计算机内的存储形式。

                  分为顺序存储结构、链式存储结构、索引存储结构、散列存储结构

                             

                          

                        

       (3)数据运算

                对数据进行的操作,如 插入、删除、查找、排序等。

  • 总结

                                          

二、算法的相关概念

1、算法的定义

  •         算法(Algorithm)是解决特定问题的步骤的描述。
  •         在计算机中算法是一个又穷规则(或语句、指令)的有序集合。
  •         它确定了解决某一问题的一个运算序列。对于问题的初始输入,通过算法有限步的远行,产生一个或多个输出。

2、算法与程序

  • 算法是解决问题的思想方法
  • 程序是计算机语言的具体实现

3、算法与数据结构

  • 算法设计:取决于选定的逻辑结构。
  • 算法实现:依赖于采用的存储结构。

          瑞士科学家沃思(N.Wirth)的著名公式:  数据结构 + 算法 = 程序 。

4、算法的特性

(1)有穷性

(2)确定性

(3)可行性

(4)输入

(5)输出

 

5、算法分析

1、解决一个问题可以有多种不同的算法,在算法正确的前提下,评估算法的好坏的方法:

  • 正确性,可读性,健壮性,时间效率高和储存量低

             —  消耗时间的多少:

             —  消耗存储空间的多少:

             —  容易理解、容易编程和调试、容易维护:

2、算法时间复杂度 —— 事后统计法

  •  通过编写程序和设计测试数据,测试程序的运行时间,从而确定算法效率的高低。

            事后统计法的缺陷:

                —  (1) 依赖于特定的计算机硬件和软件  。

                —  (2)   需要花费大量精力设计测试程序和测试数据。

3、算法时间复杂度 —— 事前估计方法

  •  根据统计学的方法,对算法效率进行估算

          程序在计算机运行所消耗的时间取决于:

                —  (1) 算法的设计  。       

                —  (2) 算法的输入规模  。               

                —  (3) 编译器对代码的优化  。               

                —  (4)计算机执行指令的速度 。     

  • 引用了“O”         

             "O"表示一个数量级的概念。

            根据算法中语句执行的最大次数(频度)来估算一个算法执行时间的数量级。

  • 时间复杂度:

            算法中基本操作重复执行的次数是问题规模n的某个函数f(n),

                   T(n) = O(f(n))

            他表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。

  • 语句的额度:是该语句重复执行的次数。       

                                 

  • 常见的时间复杂度

                                  

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值