1.数据结构
计算机存储和组织数据的一种方式,根据存储的方式不同,操作也就不同,合理选择数据结构能够有效的提升存储效率和运行效率.
数据操作:增删改查
常见数据结构:数组,链表,树,图
2.数组
2.1特性
数组:引用数据类型
是一种常见的数据结构,常用来查改操作
数组是解决存储多个变量的问题
数组在内存空间中是连续存储的,并且有独一无二的下表(索引),下标从0开始
但是数组长度一旦确定,不能更改,因为这时候内存已经给你分配好固定的空间了.所以数组不能做添加和删除的操作
想要添加和删除的话需要重新创建一个新的数组空间,然后把原来数组中的元素复制到新数组中,在复制过程中,可以添加和删除
数组有指定下标,并且是连续储存,通过内存地址的偏移,可以快速定位到要操作的数据,所以数组的查询效率是极高的
数组:添加删除慢,查询更改快
2.2数组的声明
静态声明:在已知数组中每个元素的情况下,使用静态声明
这种声明状态下,元素的个数以及每一个元素的值都已经确定写在声明里面了
数据类型[] 变量名 = {值1,值2,值3} ;
int [] i = {1,2,3,4}; int一维数组
int [] [] a = {{1,2} , {1,2,3} , {1,2,3} } int 二维数组
int [] [] [] c = ... i int 三维数组
数组可以多维,但是每一维的类型必须一致
动态声明:在不知道数组中每个元素的情况下,使用动态声明,需要制定长度,然后用对应默认值占位
数据类型 [] 名字 = new 数据类型 [长度] ;
int [] arr = new int [ 3] ;
boolean [] arr1 = new boolean [5] ;
int [] [] arr2 = new int [5] [4] ; 五行四列 即 五个一维数组 每个一维数组里有四个元素 默认值都是0
三维数组一样道理
各数据类型的默认值:
整数: 0 , 小数 : 0.0 ,字符:u000, 布尔型 : false 引用类型 : null
2.3.1 查询:
查询: 数组[下标] ;
数组具有长度属性即:arr.length
最后一个元素为 arr([arr.length - 1])
2.3.2 更改:
数组[下标] = 值 ;
arr1 [0] = 100 ;
2.3.3 遍历
一维数组用一个循环,二维数组嵌套两个循环,三位数组嵌套三个循环
2.3.4 常见错误
2.4 另一种声明方式
2.5 传值和传址(传引用)
传值:传递基本类型
传址:传递引用类型
因为引用类型的保存方式为保存的地址,所以改变了引用类型中的内容后,下次再使用的是改变以后的内容
2.6 数组复制
3. 二维数组
3.1 声明
3.2.1 查询
3.2.2 更改
3.2.3 遍历
3.3 存储方式
4 排序
4.1 交换变量的值
4.2 冒泡排序
1.比较相邻的两个元素,如果第一个比第二个大,就交换位置.
2.对每一对相邻元素做同样的工作,比较完最后一轮后,最后一个一定是最大的
3.在对以上元素重复该步骤,除了最后一个.
4.一直到没有一对元素需要比较,终止
使用嵌套循环,外层循环决定循环了多少轮,内层循环决定每一轮的比较次数
4.3 选择排序
1.每次都把最小的放到左边
先拿出来第一个,假设他是最小的,然后挨个和后面的所有值进行比较,如果有比他小的那么就将其下标保存
2.比较完以后,就保存了最下的这个下标,然后判断是否和第一个相同,不同就换位



