概览:
1、数组元素的赋值(杨辉三角、回形数等)
2、求数值型数组中元素的最大值、最小值、平均数、总和等
3、数组的赋值、翻转、查找(线性查找、二分法查找 )
详细描述
1、详见之前博客(杨辉三角、回形数)
2、求数值型数组中元素的最大值、最小值、平均数、总和等
//求数值型数组中元素的最大值、最小值、平均数、总和等
//求数组中的最大值
int[] arr = new int []{12,-5,35,19,65,-7,6,3};
int temp = 0; //初始化声明temp
for(int i = 0; i<arr.length-1; i++){
if(temp <arr[i]){//如果数组中的值大于temp,则将值赋值给temp
temp= arr[i];
}
}
System.out.print("数组中最大的值为:"+temp);
//求数组中的最小值
int mintemp = arr[0];
for(int i=1;i<arr.length;i++){
if(mintemp>arr[i]){
mintemp=arr[i];
}
}
System.out.print("数组中最小的值为:"+mintemp);
//求平均值
int sum=0;
double avgNum=0;
for(int i = 0;i<arr.length; i++){
sum+=arr[i];
}
avgNum=((double)sum)/arr.length;
System.out.print("平均值为:"+avgNum);
System.out.print("总和为:"+sum);
3、数组的赋值、翻转、查找(线性查找、二分法查找 )
//数组的赋值、翻转
int[] arr1,arr2;
arr1 = new int{45,39,-1,28,61,16,-8,36,5};
for(int i = 0; i<arr1.length;i++){
System.out.print(arr1[i]+"\t");
}
//不能称作数组的复制
arr2=arr1;//赋值arr2变量等于arr1的值,此是将arr1在堆中地址赋值给arr2,与arr1同时指向同一个数组;
//修改arr2中的偶索元素,使其等于索引值
for(int i = 0; i<arr2.length;i++){
if(i%2 == 0){
arr2[i]=i;
}
}
//实现数组元素的复制,则需要初始化声明 arr2
arr2=new int[arr1.length];
for(int i = 0; i<arr1.length;i++){
arr2[i]=arr1[i];
}
//数组的翻转 方法1
for(int i =0;i<arr1.length/2;i++){
for(int j = 0;j<arr1.length-1-i){
int temps=arr1[j];
arr1[j]=arr1[arr1.length-1-i]
arr1[arr1.length-1-i]=temps;
}
}
//数组的翻转 方法2
for(int i=0,j=arr1.length-1;i<j;i++,j--){
int temp = 0;
temp=arr1[i];
arr1[i]=arr1[j];
arr1[j]=temp;
}
3.1数组的查找(线性查找、二分法查找)
//线性查找以及二分法查找
//线性查找
String arry[] = new String[]{"AA","BB","DD","GG","SS","QQ"};
Stirng temp="DD";
boolean isFlag = true;
for(int i = 0;i<arry.length;i++){
if(temp.equals(arry[i])){
System.out.print("已找到,索引位置为"+i);
isFlag=false;
break;
}
}
if(isFlag){
System.out.print("很遗憾,没找到!");
}
//二分法查找 具有局限性,只能查找有序的数组元素
//定义一个首坐标,一个尾坐标,一个中间坐标
//定义一个整形数组
int[] arry1 = new int[]{-2, 73, 16, 82, 29, 43, -9, -3, 3};
int searchNum = 16;
int startFlag = 0;
int endFlag = arry1.length - 1;
boolean isFlags = true;
for (int i = 0; i < arry1.length; i++) {
while (startFlag <= endFlag) {
int middleFlag = (startFlag + endFlag) / 2;//初始化证明int型,除不尽则选择左侧值
if (arry1[middleFlag] == searchNum) {
System.out.print("找到啦,索引位置为" + middleFlag);
isFlags = false;
break;
} else if (searchNum < arry1[middleFlag]) {
endFlag = middleFlag - 1;
} else {
startFlag = middleFlag + 1;
}
}
}