1、数据结构与算法认识与理解

# 第一章 数据结构与算法认识与理解

## 1、数据结构

**程序=数据结构+算法;**  数据结构通过算法实现操作,算法根据数据结构设计程序

程序是语言,而数据结构与算法相当于语法。

**1、什么是数据结构**:数据的逻辑结构,存储结构,运算  

逻辑结构包括线性结构和非线性结构  

存储结构包括链式存储结构和顺序存储结构

运算包括插入、删除、排序、修改、检索等

## 2、算法分析

### 1、必须具备的五个特性

确定性、有穷性、可行性、输入、输出

### 2、算法设计的要求

正确性、可读性、健壮性、高效性

| **正确性** | **程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果。** |
| :--------- | ------------------------------------------------------------ |
| **可读性** | **算法应该让人容易理解**                                     |
| **健壮性** | **考虑错误的存在,如果出错,算法能第一时间作出反应并进行处理** |
| **高效性** | **花费尽量少的时间和尽量低的存储空间**                       |

### 3、算法效率

1、时间效率:**算法运行时间=一个简单操作所需的时间✖简单操作次数**

​                                                                    **=∑每条语句的执行次数✖该语句执行一次所需的时间**

​                         算法的时间复杂度:是由嵌套最深层语句的频度决定的。语句频度=每条语句的执行次数。

​                    其中T(n)=O(1)为常量阶;T(n)=O(n)为线性阶;T(n)=O(n²)为平方阶;T(n)=O(log2n)为对数阶;T(n)=O(log2n)为线性对数阶。
$$
T(n)=O(f(n))
$$
​                        最好时间复杂度:最好情况下算法的时间复杂度。

​                        最坏时间复杂度:最坏情况下算法的时间复杂度。

​                        平均时间复杂度:在所有可能情况下按照输入实例以等概率出现时,算法的期望运行时间。

2、空间效率:算法的空间复杂度:算法所需存储空间的度量,由算法在实现时所需的辅助空间决定。
$$
S(n)=O(f(n))
$$

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值