数据结构与算法概述

一、基本概念和术语

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体进行处理。也被称为记录。

数据项:一个数据元素可以由多个数据项组成。数据项是数据不可分割的最小单位。

数据对象:是性质相同的数据元素的集合,是数据的子集。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

二、逻辑结构与物理结构

逻辑结构:是指数据对象中数据元素之间的相互关系。

物理结构:是指数据的逻辑结构在计算机中的存储形式。

数据结构中的“线性表”、“栈与队列”、“串”、“树”、“图”的逻辑结构结构都基于以下的四种形式构思,在计算机中的存储都是基于以下两种结构实现存储。

三、算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作 。

算法的特性:(1)输入输出   (2)有穷性(3)确定性 (4)可行性

算法效率的度量方法:

(1)时间复杂度

         1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n)) 

分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。

     2. 在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数量级(它的同数量级有以下:1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n) = 该数量级,若 T(n)/f(n) 求极限可得到一常数c,则时间复杂度T(n) = O(f(n))。

        在应用中,主要关注与算法的循环中n的大小。例如

//算法的时间复查度为n的平方
for(int i=0;i<n;i++){
for(int j=1;j<n;j++)
{
sum=sum+1;
}
}
  
     

(2)空间复杂度

        空间复杂度(Space Complexity)是对一个算法运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值