数组拷贝
System中的一个静态方法。
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
参数解释: src: 源数组
srcPos: 源数组的起始位置
dest: 目标数组
destPos:目标数组的起始位置
length:拷贝的数组元素个数
排序算法(以下均为部分代码段)
冒泡排序
public static void sort(Comparable[] a){
for (int i=1; i<=a.length; i++) { boolean flag = true; for (int j=0; j<a.length-i; j++) { if (a[j]>a[j+1]) { exchange(a[j],a[j+1]); } } }
}
插入排序
public static void sort(Comparable[] a){
for (int i=1; i<a.length; i++) { boolean flag = true; for (int j=i; j>0 && a[j]<a[j-1]; j--) { exchange(a[j],a[j-1]); } }
}
快速排序
public static void sort(Comparable[] a, int start, int end){
if (end<=start) { return; } int j = partition(a, start, end); //切分 sort(a, start ,j-1); sort(a, j+1,end);
}
private static int partition(Comparable[] a, int start, int end){
int i = start, j = end+1; //左右扫描指针 Comparable v = a[start]; //切分元素 while(true){ while(a[++i]<v) if(i==end) break; while(v<a[--j]) if(j==start) break; if(i>=j) break; exchange(i,j); return }
}
二维数组
数据类型[][]组名称=new 数据类型[行的个数][列的个数];
注意:二维数组的length属性就是它所包含的“行的个数”。
访问语法:数组名称
[行的索引][列的索引]
静态初始化:
数据类型[][] 数组名称={
{元素1,元素2……},
{元素1,元素2……},
……
};