1.数组
//问题1.数组长度不可变
int[] a = new int[3]; int[] x={1,2,3,4}; int[] y= new int[]{1,2,3,4,5};
解决方案:
添加方案:重新创建一个长度 是原数组长度+1的数组,将数据复制到新数组 添加的值放入新数组 替换老数组地址
例:
2.删除:
创建原数组长度-1 的新数组 将需要删除元素之前 和之后的元素重新组成新的数组
3.面向对象的数组
数组创建好之后元素数量和长度都是固定的,添加删除操作非常不方便
通过封装数组对象 实现 可以任意添加一个元素,删除一个元素;
4.查找算法(线性查找,二分法查找)
线性查找:
遍历从头到尾对比查找
二分法查找:
当数组的数据量很大适宜采用该方法。采用二分法查找时,数据需是有序不重复的,如果是无序的也可通过选择排序、冒泡排序等数组排序方法进行排序之后,就可以使用二分法查找。
二分法查找基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止,但是如果当前段的索引最大值小于当前段索引最小值,说明查找的值不存在,返回-1,不继续查找