依然 数组
缺点:
第一:由于为了保证数组中每个元素内存地址连续,所以在数组上随机删除或者增加元素的时候,效率较低,因为随机增删元素会涉及到后面元素统一向前或者向后位移的操作。
第二:数组不能存储大数据量,为什么?因为很难在内存空间上找到一块特别大的连续的内存空间
注意:对于数组中最后一个元素的增删,是没有效率影响的
怎么声明定义一个一维数组?
语法格式:
int [] array1;
double [] array2;
boolean[] array3;
String [] array4;
Object [] array5;
怎么初始化一个一维数组,动态初始化一维数组。
包括两种方式:静态初始化一维数组,动态初始化一维数组。
静态初始化语法格式:
int[] array = {100…};
动态初始化语法格式:
int[] array =new int[5];//这里的5表示数组的元素个数。
//初始化一个5个长度的int类型数组,每 个元素默认值0。
String[] names =new String[6];//初始化6个长度的String类型数组,每个元素默认值null。
拷贝数组
System.arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
二维数组
二维数组静态初始化
int[][] array={{1,1,1},{1,2,3,4},{0,0,0}}
常见算法:
排序算法:
冒泡排序算法
选择排序算法
查找算法:
二分法查找
算法实际上在java中不需要精通,因为java已经封装好了,要排序就调用方法就行。例如:java中提供了一个数组工具类:
java.util.Arrays
Arrays是一个工具类
其中有一个方法sort()方法,可以排序。静态方法,直接使用类名调用就行。
选择排序:
选择排序比冒泡排序的效率高
高在交换位置的次数上
选择排序的交换位置是有意义的
冒泡排序和选择排序实际上比较的次数没变
交换次数变少了
循环一次,然后找出参加比较的这堆数据中最小的,拿着这个最小的值和最前面的数据交换位置