今天学了什么是算法?什么是数据结构
算法:解决问题的方法
如:1+2+3。。。。+100,求最后的得数?
[(首项+末项) * 项数 ] / 2
这个方法叫做: 高斯算法
判断算法的方式:
时间复杂度、空间复杂度
数据结构是
数据:计算机的二进制
结构:计算机在缓存、存储、内存中不同数据的管理方法
数据结构分为:
逻辑结构
思想结构
逻辑结构:我要盖5层楼
思想结构:混凝土+钢筋+牛顿力学
而数据结构真正要学的是:思想结构
思想结构又分为:
顺序结构
跳转结构
例如:我要创建一个线性表
所谓线性表是: 1、2、3、4、5
这个线性表是一个逻辑结构
而在思想结构中则是分为两种:
顺序结构:数组 ---> 线性表
跳转结构:链式 ---> 线性表
数组:
有序
同一类型
int[ ] x = new int[5] ------------> 表示在这个数组中只能存储int类型的元素
String [ ] x = new String [5] -----------------> 表示在这个数组中只能存储String类型的元素
固定长度
int[ ] x = new int[5] -------------------> 表示在这个数组中存储的长度5
int[ ] x = new int[15] ------------------> 表示在这个数组中存储的长度为15
缺点是:
添加和删除元素效率很慢
优点是:
查询效率快
链式:(链表)
单项列表:
1;下一个元素的地址 ---> 2;下一个元素的地址
多项列表:
1;下一个元素的地址 <---> 2;下一个元素的地址 <---> 3;下一个元素的地址
循环列表:
1;下一个元素的地址 <---> 2;下一个元素的地址 <---> 3;下一个元素的地址 <---
^ |
|________________________________________________________________________________________|
变成了一个循环
优点就是:
增加和删除效率高
缺点就是:
查询效率低
集合:
集合和数组,是计算机存储数据的容器
存储是指内存中的存储
根据数组的缺点:
1、限定类型
2、限定长度
3、添加和删除效率低
4、有序的
集合的特点就是:
1.不限制类型
2.不限制长度
3.添加和删除效率低
4.无序
集合分为很多种:
array
list
map
…
之所以要学习这些不同种类的集合,原因就是这些集合在计算机存储管理的方式不一样