例:数组的倒置以及合并
public class TestDemo1 {
//反转数组
public static void reverse(int[] array){
for(int i =0;i<array.length/2;i++){
int tmp = array[i];
array[i] = array[array.length-1-i];
array[array.length-1-i] = tmp;
}
}
//合并数组
public static void merge(int[] array1,int[] array2){
int[] array3 = new int[array1.length+array2.length];
for(int i = 0;i < array1.length;i++){
array3[i] = array1[i];
}
for(int j = 0;j < array2.length;j++){
array3[array1.length+j] = array2[j];
}
for(int k = 0;k < array3.length;k++){
System.out.print(array3[k]+" ");
}
System.out.println();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = {
12,34,21,22,4,6,81,2,1};
int[] array2 = {
5,8,10};
reverse(array);
merge(array,array2);
}
}
运行结果如下:
二分查找例题
public class TestDemo1 {
public static int Search(int[] array,int val){
int low = 0;
int high = array.length-1;
while(low<=high){
//int mid = (low+high)/2;
//int mid = low+(high-low)/2;
int mid = (low+high)>>>1; //下标
if(array[mid]>val){
high = mid - 1;
}else if(array[mid]<val){
low = mid + 1;
}else{
return mid;
}
}
return -(low+1);//源码中为-(low+1) 查找数据的插入点位置
}
public static void main(String[] args) {
int[] array = {
12,34,21,22,4,6,81,2,1};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
int index = Arrays.binarySearch(array,12);
System.out.println(index);
//binarySearch 二分查找
}
}
运行结果如下:
二维数组的遍历
基本类型
public static void show1(int[][] array){
for(int i = 0;i<array.length;i++){
for(int j = 0;j<array[i].length;j++){
System.out.println(array[i][j]+" ");
}
System.out.println();
}
}
引用类型
public static void show2(TestArray[][] Array)
{
for (int i = 0; i < Array.length; i++) {
for (int