数据结构概述

一. 初识数据结构

数据结构(Data Structure):是操作系统中组织数据的集合

算法:是解决某一类问题的思想,在特定数据结构上,一组输入按照特定的方式输出

数据结构是算法的基石. 如果把算法比作一位成功的蓝人,那么数据结构就是他背后默默付出支持他的铝人…
研究算法的最终目的就是如何花更少的时间,如何占用更少的内存去完成相同的需求

数据结构可以分为两大类:

  • 逻辑数据结构:反映数据元素之间的逻辑关系,与数据在计算机中存储的位置无关

  • 物理数据结构:逻辑数据在计算机中真正存储的形式

我们都知道,在计算机的内存中,是没有逻辑结构这一说,都是一块块内存单元,逻辑结构是为了能更好的理解和解决而问题而抽象出来的. 它在计算机中不存在,但是我们可以通过物理结构模拟出来

在这里插入图片描述

数据结构的组成方式:

  1. 线性结构 (数组,链表,栈,队列,哈希表)
  2. 树 (二叉树,红黑树,B+树,二叉堆)
  3. 其他数据结构 (哈希链表,位图)

算法应用的领域:

  1. 运算
  2. 查找
  3. 排序
  4. 最优决策
  5. 面试 (敲黑板了,这才是重点)

二. 时间复杂度和空间复杂度

衡量算法好坏的标准:

  • 时间复杂度
  • 空间复杂度
1. 时间复杂度
  • 算法函数中的常数可以忽略;
  • 算法函数中最高次幂的常数因子可以忽略;
  • 算法函数中最高次幂越小,算法效率越高

常见时间复杂度的一个总结:
在这里插入图片描述
在这里插入图片描述

描述增长的数量级说明举例
常数级别1普通语句两个数相加
对数级别logN二分策略二分查找
线性级别N循环找出最大元素
线型对数级别NlogN分治思想归并排序
平方级别N^2双层循环检查所有元素对
立方级别N^3三层循环检查所有三元组
指数级别2^N穷举查找检查所有子集

时间复杂度从低到高依次为:
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3)

2. 空间复杂度分析

基本数据类型内存占用情况:

数据类型内存占用字节数
byte1
short2
int4
long8
float4
double8
boolean1
char2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值