Java版数据结构和算法学习笔记之线性结构数组篇
1. 数组
1.1 数组的基本使用
- 创建数组
int[] arr=new int[3];
创建一个长度为3的数组 - 获取数组的长度
int length=arr.length; - 数组下标从0开始,最大可以取到length-1
- 赋值
arr[1]=12; //为第2个元素辅助(下标为1)
- 遍历数组:
for(int i=0;i<arr.length;i++){}
for(int a:arr){}
增强型For循环
- 创建数组的同时为数组中的元素赋值
int[] arr=new int[] {1,2,3}
1.2 数组元素的添加
解决数组的长度不可变的问题
int[] arr=new int[] {9,8,7}
//快速查看数组中的元素
System.out.println(Arrays.toString(arr));
//要加入数组的目标元素
int dst=6;
//创建一个新的数组,长度是原数组长度+1
int[] newarr=new int[arr.length+1];
//把原数组中的数据全部复制到新数组中
for(int i=0;i<arr.length;i++){
newarr[i]=arr[i];
}
//把目标元素放入新数组的最后
newarr[arr.length]=dst;
//再用新数组替换原数组
arr=newarr;
1.3 数组元素的删除
int[] arr=new int[] {9,8,7}
//要删除的元素的下标
int dst=1;
//创建一个新的数组,长度是原数组长度-1
int[] newarr=new int[arr.length-1];
//复制数组
for(int i=0;i<newarr.length;i++){
if(i<dst){
newarr[i]=arr[i];
}else{
newarr[i]=arr[i+1];
}
//再用新数组替换原数组
arr=newarr;
1.4 面向对象的数组
用代码实现面向对象的数组:增删查找。
2. 查找算法
2.1 线性查找
2.2 二分法查找
只能查找有序数组。