数据结构与算法基础

一、基本概念

  1. 数据:可输入计算机处理的符号集合(客观事物的数字化表示)

  2. 数据元素:数据的基本单位(包含若干数据项)

  3. 数据项:不可分割的最小数据单位

  4. 数据对象:性质相同的数据元素集合

  5. 数据结构:研究数据元素间的逻辑关系与存储方式

二、数据结构三要素

要素说明
逻辑结构数据元素间的抽象关系
存储结构数据在计算机中的具体存储方式
运算对数据实施的操作(增删改查等)

三、逻辑结构分类

  1. 集合结构:无序的数据集合

  2. 线性结构:1:1关系(线性表、栈、队列)

  3. 树形结构:1:n关系(二叉树、B树等)

  4. 图状结构:n:m关系(有向图、无向图)

四、存储结构类型

类型特点示例
顺序存储连续内存空间,通过物理位置表示逻辑关系数组
链式存储通过指针域维护逻辑关系链表
索引存储建立附加索引表快速定位数据库索引
哈希存储通过哈希函数直接计算存储位置哈希表

五、算法基础

1. 算法特性

  • 输入(≥0)、输出(≥1)

  • 有穷性(有限步骤终止)

  • 确定性(无二义性)

  • 可行性(可执行操作)

2. 复杂度分析

时间复杂度(常用阶)

O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2ⁿ) < O(n!)

空间复杂度:算法运行所需的存储空间

六、哈希表详解

实现原理

  • 通过哈希函数将键映射到存储位置

  • 处理冲突方法:开放定址法、链地址法等

迭代器访问

// 示例:C++中访问哈希表元素
auto it = hashMap.find(key);
if (it != hashMap.end()) {
    int value = it->second;  // 获取键对应的值
    // it->first 表示键
    // it->second 表示值(如数组下标)
}

七、算法设计方法

  1. 分治法

  2. 动态规划

  3. 贪心算法

  4. 回溯法

  5. 分支限界法

学习路线建议

  1. 先掌握基础数据结构(线性表→树→图)

  2. 理解各种存储结构的实现差异

  3. 通过经典算法实践复杂度分析

  4. 逐步学习高级算法设计技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值