0%

算法与数据结构体系

算法与数据结构体系学习大纲:

1 定义

数据结构定义:就是研究数据的存储方式;把现实中大量而复杂的问题以特定的数据类型(单个数据存储)和特定的存储结构(个体的关系)保存到内存中。

算法定义:在此基础上为实现某个功能(查找,删除,排序等)而进行的操作。

数据结构用于解决存储数据,算法用于对存储数据的操作

2 存储结构

2.1 线性表  

顺序表: 简单地理解,就是常用的数组

链表: 存储数据时,是随用随申请,因此数据的存储位置是相互分离,存储位置是随机的

:遵循“先入后出”的原则

队列:遵循“先入先出”的特点

哈希表:根据关键码值(Key value)而直接进行访问的数据结构

2.2 树结构

  • 二分搜索树
  • AVL
  • 红黑树
  • B类树

2.3 图结构

2.4 高级数据结构

  • 线段树
  • 并查集
  • Trie
  • SQRT分解

3 时间复杂度和空间复杂度

3.1 时间复杂度

算法的运行时间,便是方式为O(频度),以去掉系数的最高项为准,例如运行了(n² + n + 1)次的算法的时间复杂度为O(n²)

几种常见的算法时间复杂度的比较(由小到大):

1
O(1)常数阶 < O(logn)对数阶< O(n)线性阶 < O(n2)平方阶 < O(n3)(立方阶) < O(nn) (指数阶)

3.2 空间复杂度

该算法所耗费的存储空间,它也是问题规模n的函数

4 算法

4.1 排序算法

  • 插入
  • 冒泡
  • 选择
  • 希尔
  • 快速
  • 归并
  • 堆排序
  • 计数排序
  • 桶排序
  • 基数排序

4.2 查找算法

  • 线性查找
  • 二分查找

4.3 字符串算法

  • KMP
  • 模式匹配