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



