数组的输出、复制、反转、排序、查找
输出:
示例:
int a = {2,3,54,3,3};
for(int i = 0;i<a.length;i++){
System.out.println(a[i]);
}
复制:
①定义新数组,将a数组的地址值复制给b数组;
示例:
int[] a = {1,2,3,4};
Int[] b = a;
②通过for循环将数组的每个值复制给b数组
示例:
int a = {2,3,54,3,3};
Int[] b = [a.length];
for(int i = 0;i<a.length;i++){
b[i] = a[i];
}
反转:
通过倒叙输出数组
示例:
int a = {2,3,54,3,3};
int[] b = [a.length];
for(int i = 0;i<a.length;i++){
for(int j = b.length;j>=0;j++){
a[j] = b[i];
}
}
排序:
将数组排序后按从大到小的方式排列;
①冒泡排序,将数字从角标0和后续比较,例如0-1;1-2;2-3;3-4;比较前一个数大则两个数互换位置;需要排序数组长度-1次
①for(int i = 0;i<num.length-1;i++){
// for(int j = 0;j<num.length-i-1;j++){
// if(num[j]>num[j+1]){
// int temp = num[j];
// num[j] = num[j+1];
// num[j+1] = temp;
// }
// }
// }
②简单排序,每个数进行比较将最大的数放在数组最后一列;
for(int i = 1;i<num.length;i++){
// int index = i-1;
// int max = num[index];
// for(int j = i;j< num.length;j++){
// if(num[j]<max){
// max = num[j];
// index = j;
// }
// }
// if(index != i-1){
// int temp = num[index];
// num[index] = num[i-1];
// num[i-1] = temp;
// }
// }
查找:
在数组中查询指定的值;
①直接通过==或者equals比较查询
②通过二分法查询,将数据分为对半然后判断是大于中间值还是小于中间值,然后再根据结构继续对半查询直至中间的数为需要查询的数据或无法查到数据;
int foundNum = 123;
// int right = num.length-1;
// int left = 0;
// int mid = (right+left)/2;
// int index = -1;
// while(left<=right){
// if(foundNum == num[mid]){
// index = mid;
// System.out.println("找到了"+index);
// break;
// }else if(foundNum>num[mid]){
// left = mid+1;
// }else if(foundNum<num[mid]){
// right = mid-1;
// }
// mid = (right+left)/2;
// }
- 二维数组
①:定义二维数组
Int num[][] = new int {{1,2,3},{4,5,6},{7,8,9},{1,2,3}};(当这种情况时是num[2][]保存的地址值)
Int num[][] = new int [8][8];(当这种情况各数组实际值例如num[2][6]为null)
②:二维数组的查询
示例:
Int num[][] = new int [8][8];
Num[7][7] = 10;
System.out.println(num[7][7]);(10)