数据结构是存储的基石
算法是一切高性能程序的灵魂,而数据结构就是这个数据的装载容器
但是数据格式不一,容器也不一样
一、数据结构初识
1.数据结构:
Date Structure---->数据的结构
就是存储数据的不同方式:
简单来说,卖鸡蛋,用袋子不规则的装起来,或者用专门的蛋板子去装;
2.数据结构的分类:
一般的就是数据结构:
数组
链表:
算法: Algorithm
解决同一问题的不同解决方法--->对于特定的数据结构;
算法的优劣:
时间维度:
时间差,幅度不够,循环来凑;
空间维度:
Big o:
时间-问题(数据)规模:
时间复杂度:随着数据规模的变化,这个时间所呈现的规律;
空间复杂度:随着数据规模的变化,这个空间所呈现的规律;
场景一:
访问数组中的特定位置的数据
解析: 比如数组的长度为 10 ,只需要算偏移量,跳转就可以
随着数据的规模扩大,变成 10000, 也是计算偏移量,跳转
一般在算法中表示复杂度: 大写的 O 来判定:
O(1)------>作为本场景数据获取特定位置的数据;
但是场景转换成链表之后呢,我们可以成为一个简单的数据;
数据规模为 n,找出特定位置(特定位置相对于时间复杂度来说,比较差的情况),那我们就规定为是,找出最后一个数据的时间;
这里的时间复杂度 为 O(5)
经过数据规模扩大到 N
O(n)作为访问随机数据的时间复杂度;
场景二:求数组的平均数
经过数据规模的扩大,数组增加然后平均的步骤也增加
因为时间复杂度是 O(n)
场景三: 找出数组最大值得时间复杂度:
数组的最大值,
解析
复制代码
复制代码
时间复杂度为:O(n-1)
2.1 线性数据结构 :
分为链式数据结构(链表)和顺序数据结构(数组)
队列,数组、链表、栈
非线性的数据结构:
对于多种排序的复杂度,是个图标:
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/f10f601d813e1ba1e9b7b4c95】。文章转载请联系作者。
评论