数组有关练习题
- 1、求数组的平均值
- 2、数组所有元素之和
- 3、改变原有数组元素的值
- 4、打印数组
- 5、创建的数组,并且赋初始值
- 6、冒泡排序
- 7、数组是否有序
- 8、二分查找
- 9、数组的拷贝
- 10、数组转字符串
1、求数组的平均值
实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
/**
* Created with IntelliJ IDEA.
* Description:实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
* User: starry
* Date: 2020 -12 -11
* Time: 15:53
*/
public class Work1 {
public static int avg(int[] arr){
int sum=0;
// for(int i=0;i<arr.length;i++){
// sum=sum+arr[i];
// }
for(int a:arr){
sum+=a;
}
return sum/arr.length;
}
public static void main(String[] args) {
int[] arr=new int[]{1,2,3,4,5};
int avg=avg(arr);
System.out.println(avg);
}
}
2、数组所有元素之和
实现一个方法 sum, 以数组为参数, 求数组所有元素之和.
/**
* Created with IntelliJ IDEA.
* Description:实现一个方法 sum, 以数组为参数, 求数组所有元素之和.
* User: starry
* Date: 2020 -12 -11
* Time: 16:14
*/
public class Work2 {
public static int sum(int[] arr){
int sum=0;
for(int a:arr){
sum+=a;
}
return sum;
}
public static void main(String[] args){
int[] arr={1,2,3,4,5};
System.out.println(sum(arr));
}
}
3、改变原有数组元素的值
实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
/**
* Created with IntelliJ IDEA.
* Description:实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上.
* 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
* User: starry
* Date: 2020 -12 -11
* Time: 16:21
*/
public class Work3 {
public static void transform(int[] arr){
for(int i=0;i< arr.length;i++){
arr[i]*=2;
}
}
public static void main(String[] args){
int[] arr=new int[]{1,2,3,4,5};
transform(arr);
for(int a:arr){
System.out.println(a);
}
}
}
4、打印数组
实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
/**
* Created with IntelliJ IDEA.
* Description:实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
* User: starry
* Date: 2020 -12 -11
* Time: 16:35
*/
public class Work4 {
public static void printArray(int[] arr){
for(int a:arr){
System.out.println(a);
}
}
public static void main(String[] args){
int[] arr={1,2,3,4,5};
printArray(arr);
}
}
5、创建的数组,并且赋初始值
创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
/**
* Created with IntelliJ IDEA.
* Description:创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
* User: starry
* Date: 2020 -12 -11
* Time: 16:44
*/
public class Work5 {
public static void main(String[] args) {
int[] arr=new int[100];
for(int i=0;i<arr.length;i++){
arr[i]=i+1;
}
for(int i:arr){
System.out.print(i+" ");
}
}
}
6、冒泡排序
给定一个整型数组, 实现冒泡排序(升序排序)
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Description:给定一个整型数组, 实现冒泡排序(升序排序)
* User: starry
* Date: 2020 -12 -27
* Time: 10:10
*/
public class Work6 {
public static void bubbleSort(int[] arr){
int i,j;
for(i=0;i<arr.length-1;i++){
int time=0;
for(j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
time=1;
}
}
if(time==0){
return;
}
}
}
public static void main(String[] args) {
int[] arr=new int[]{53,12,48,86,74,55,32,57,49,99};
System.out.println("初始为:"+Arrays.toString(arr));
bubbleSort(arr);
System.out.println("排序后为:"+Arrays.toString(arr));
}
}
7、数组是否有序
给定一个整型数组, 判定数组是否有序(递增)
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Description:给定一个整型数组, 判定数组是否有序(递增)
* User: starry
* Date: 2020 -12 -27
* Time: 10:40
*/
public class Work7 {
public static boolean judgeSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
if(arr[i]>=arr[i+1]){
return false;
}
}
return true;
}
public static void main(String[] args) {
int[] arr1=new int[]{53,12,48,86,74,55,32,57,49,99};
System.out.println("数组1为:"+ Arrays.toString(arr1));
System.out.println("数组1是否有序:"+judgeSort(arr1));
int[] arr2=new int[]{1,2,3,4,5,6,7,8,9,10};
System.out.println("数组2为:"+ Arrays.toString(arr2));
System.out.println("数组2是否有序:"+judgeSort(arr2));
}
}
8、二分查找
给定一个有序整型数组, 实现二分查找
import java.util.Arrays;
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* Description:给定一个有序整型数组, 实现二分查找
* User: starry
* Date: 2020 -12 -27
* Time: 10:49
*/
public class Work8 {
public static int binarySearch(int[] arr,int a){
int len=arr.length;
int left=0;
int right=len-1;
int mid;
for(int i=0;i<len;i++){
mid=(left+right)/2;
if(arr[mid]>a){
right=mid-1;
}else if(arr[mid]<a){
left=mid+1;
}else{
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr=new int[]{11,22,33,44,55,66,77,88,99,100};
System.out.println("数组为"+ Arrays.toString(arr));
System.out.println("请输入要查找的数字");
Scanner cin=new Scanner(System.in);
int a=cin.nextInt();
int result=binarySearch(arr,a);
if(result==-1){
System.out.println("该数字在数组中未出现");
}else{
System.out.println("该数字所在数组下标为:"+result);
}
}
}
9、数组的拷贝
实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Description:实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.
* User: starry
* Date: 2020 -12 -27
* Time: 11:32
*/
public class Work9 {
public static int[] copyOf(int[] arr){
int[] brr=new int[arr.length];
for(int i=0;i<brr.length;i++){
brr[i]=arr[i];
}
return brr;
}
public static void main(String[] args) {
int[] arr=new int[]{11,22,33,44,55,66,77,88,99,100};
System.out.println("数组1为:"+ Arrays.toString(arr));
System.out.println("经拷贝后,数组2为:"+Arrays.toString(copyOf(arr)));
}
}
10、数组转字符串
实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 “[1, 2, 3]”, 注意 逗号 的位置和数量.
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* Description:实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} ,
* 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.
* User: starry
* Date: 2020 -12 -27
* Time: 11:44
*/
public class Work10 {
public static String ToString(int[] array) {
if(array == null) {
return null;
}
String ret = "[";
for (int i = 0; i < array.length; i++) {
ret = ret + array[i];
if(i != array.length-1) {
ret += ", ";
}
}
ret += "]";
return ret;
}
public static void main(String[] args) {
int[] array = {1,2,3};
System.out.println(Arrays.toString(array));
}
}