概述
一、数据结构概述:
1.什么是数据结构:
数据结构是指由相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
2.数据的存储结构:
- 顺序存储:顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。数组就是顺序存储结构的典型代表。
- 链式存储:链式存储结构:是把数据元素存放在内存中的任意存储单元里,也就是可以把数据存放在内存的各个位置。这些数据在内存中的地址可以是连续的,也可以是不连续的。
两者之间的区别:
比如看成在食堂打饭
3.数据的逻辑结构:
- 集合结构:集合结构中的数据元素同属于一个集合,他们之间是并列的关系,除此之外没有其他关系。
- 线性结构:线性结构中的元素存在一对一的相互关系。数据和数据之间是有关系的。
- 树形结构:树形结构中的元素存在一对多的相互关系。
- 图形结构:图形结构中的元素存在多对多的相互关系。
二、算法的概述
1.算法的定义:
用来解决问题的思路
是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
2.算法的特性:
- 输入
- 输出
- 有穷性:有限的步骤里,可以执行出结果,不能无限的执行。
- 确定性:有一个输入只有一个确定的结果,不能一次结果1,一次结果2。
- 可行性:能够解决实际问题。
3.算法的基本要求:
- 正确性
- 可读性
- 健壮性
- 时间复杂度:算法占用的时间,运算速度。
- 空间复杂度:算法在运行时候占用的内存,占用的资源。
4.demo
从1加到100:没有最好的算法,只有最合适的。
package dataStruct;
public class AddOneToHandred {
public static void main(String[] args) {
int total=0;
int end=100;
//使用FOR循环
for(int i=1;i<=100;i++) {
total+=i;
}
//直接计算
total=(1+end)*(end/2);
System.out.println(total);
}
}