数据结构与算法

一、基本概念

1、算法复杂度介绍

数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构、散列结构、树形结构、图形结构等等

算法:求解具体问题的步骤描述,代码上表现出来是解决特定问题的一组有限的指令序列

算法复杂度:时间和空间复杂度,衡量算法效率,算法在执行过程中,随着数据规模n的增长,算法执行所花费的时间和空间的增长速度。

常见的时间复杂度:

image-20240906162500698

关系:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(2n)<O(2!)<O(n^n)

​ 常量时间<对数时间<线性时间

注:越往后时间复杂度花费越大

image-20240906164447102

二、线性表

1、数组

image-20240906170816350

特点:内存是连续的

  • 优点

    • 下标访问(随机访问)时间复杂度是O(1)

    • 末尾位置增加删除元素时间复杂度是O(1)

    • 访问元素前后相邻位置的元素非常方便

  • 缺点

    • 非末尾位置增加删除元素需要进行大量的数据移动

    • 搜索的时间复杂度

      • 无序数组-线性搜索O(n)

      • 有序数组-二分搜索O(logn)

  • 数组扩容消耗比较大

    • 扩容

image-20240906172021550

posted @ 2025-06-03 10:07  海洛船长Q  阅读(17)  评论(0)    收藏  举报