《数据结构与算法》 第一章 绪论

文章介绍了数据结构的基本概念,包括数据元素、数据项、数据对象和逻辑结构,并探讨了数据的存储结构类型。同时,阐述了算法的核心特性,如有穷性和可行性,并以时间复杂度和空间复杂度为指标评估算法效率。最后,通过递归算法的时间复杂度分析举例来巩固理解。
摘要由CSDN通过智能技术生成


知识框架

在这里插入图片描述

一、数据结构基本概念

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系的操作等相关问题的学科

程序设计=数据结构+算法

1. 基本概念和术语

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。(数据不仅包含整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。)

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被成为记录。(比如:鸡鸭牛羊猪狗等动物就是禽类的数据元素)

数据项:一个数据元素可以由若干个数据项组成。(比如:人可以有眼耳口鼻这些数据项)。
数据项是数据不可分割的最小单位

数据对象是性质相同的数据元素的集合,是数据的子集。(什么是性质相同呢,是指数据元素具有相同数量和类型的数据项,比如:人都有姓名、生日、性别等相同的数据项)
既然数据对象是数据的子集,在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况下,我们都将数据对象简称为数据。

不同的数据元素之间不是独立的,而是存在特定的关系,我们将这些关系成为结构。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

2. 数据结构三要素

数据的逻辑结构

逻辑结构是指数据元素之间的逻辑关系。

在这里插入图片描述

数据的存储结构

存储结构是指数据在计算机中的表示,也称之为物理结构,主要有以下几种方式:

① 顺序存储
② 链式存储
③ 索引存储
④ 散列存储(哈希存储)

数据的运算

二、算法和算法评价

1. 算法的基本概念和特性

算法概念

算法是对特定问题求解步骤的一种描述,举个简单的例子,如何把一头大象放进冰箱的解答就是一个算法。

① 算法特性
② 有穷性
③ 确定性
④ 可行性
⑥ 输入
⑦ 输出

2. 算法的评价度量

时间复杂度

算法中所有语句的频度之和为T(n),时间复杂度主要分析T(n)的数量级。

T ( n ) = O ( f ( n ) ) T(n) = O(f(n)) T(n)=O(f(n))
在这里插入图片描述

空间复杂度

算法的空间复杂度S(n)定义为算法所耗费的存储空间,它是问题规模n的函数。

S ( n ) = O ( g ( n ) ) S(n) = O(g(n)) S(n)=O(g(n))

三、牛刀小试

已知一个算法由下列递归方程表示,求该算法的时间复杂度。
T ( n ) { 1 , n = 1 2 T ( n / 2 ) + n , n > 1 T(n) \begin{cases} 1,&n = 1\\ 2T(n/2) + n,&n > 1 \end{cases} T(n){1,2T(n/2)+n,n=1n>1
解:设(n = 2^k (k>=0)),根据题目有:

(T(2^k) = 2T(2^{k-1}) + 2^k = 22T(2{k-2}) + 222k),

(therefore)得出一般递推式:

(T(2^k) = 2kT(20) + k2^k = (k + 1)2^k),即:

(T(n) = 2^{log_2n} + log_2n*n = n(log_2n + 1))

(therefore O(n) = nlog_2n)

计算下列程序段的时间复杂度

i = 1; k = 0;
while(i < n - 1){
    k = k + 10 * i;
    i++;
}

O(n) = n

y = 0;
while((y + 1) * (y +1) <= n){
    y = y + 1;
}

O(n) = sqrt n

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值