写点什么

数据结构是存储的基石

用户头像
卢卡多多
关注
发布于: 3 小时前
数据结构是存储的基石

算法是一切高性能程序的灵魂,而数据结构就是这个数据的装载容器


但是数据格式不一,容器也不一样

一、数据结构初识

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 线性数据结构  :

分为链式数据结构(链表)和顺序数据结构(数组)


队列,数组、链表、栈

非线性的数据结构:

对于多种排序的复杂度,是个图标:



发布于: 3 小时前阅读数: 7
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
数据结构是存储的基石