巩固数组的题

目录

1.求数组中数字的平均值

2.数组中求和

3.定义一个新的数组

4.从小到大排序

5.判断数组是否有序

6.二分查找

7.拷贝数组

8.字符拼接

9.找数组中出现一次的数字


1.求数组中数字的平均值

public class WorkArray {
    public static double avg(int[] array) {
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            sum += array[i];
        }
        double ret = (double)sum/(double)array.length;
        return ret;
    }

    public static void main(String[] args) {
        int[] array ={1,2,3,4,5};
        System.out.println(avg(array));
    }

}

2.数组中求和

public class WorkArray {
    public static int sum(int[] array) {
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            sum = sum + array[i];
        }
        return sum;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5};
        System.out.println(sum(array));
    }

}

3.定义一个新的数组

public class WorkArray {
     public static int[] transform(int[] array) {
        int[] ret = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i]= array[i] * 2;
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3};
        int[] output = transform(array);
        //第一种打印
        for (int i = 0; i < output.length; i++) {
            System.out.print(output[i]+" ");
        }
        System.out.println();

        //第二种打印
        System.out.println(Arrays.toString(output));
    }
}

4.从小到大排序

public class WorkArray {

     public static void bubbleSort(int[] array) {
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if(array[j]>array[j+1]) {
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] array = {2,8,4,1,9};
        System.out.println("排序前"+Arrays.toString(array));
        bubbleSort(array);
        System.out.println("排序后"+Arrays.toString(array));
    }
   

}

5.判断数组是否有序

public class WorkArray {

     public static boolean orderArray(int[] array) {
        boolean flg = false;
        for (int i = 0; i < array.length-1; i++) {

            if(array[i] <= array[i+1]) {
                flg = true;
            }else {
                flg = false;
            }
        }
        return flg;

    }
    public static void main(String[] args) {
        int[] array = {1,2,4,4,3};
        System.out.println(orderArray(array));
    }
   

}

6.二分查找

public class WorkArray {

     public static int binarySearch(int[] array,int toFind) {
        //数组和要找的数
        int left = 0;
        int right = array.length-1;
        while(left <= right) {
            int mid = (left + right) / 2;
            if(toFind < array[mid]) {
                //在左侧区域找
                right = mid - 1;
            }else if(toFind >array[mid]) {
                //在右侧区域找
                left = mid + 1;
            }else {
                //相等,找到了
                return mid;
            }
        }
        //循环结束,没找到
        return -1;
    }
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8,9};
        System.out.println(binarySearch(array, 3));
    }
   

}

7.拷贝数组

public class WorkArray {

    public static int[] copyOf(int[] array) {
        int[] ret = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i] = array[i];
        }
        return ret;
    }

    public static void main9(String[] args) {
        int[] array = {1,2,3,4,5};
        int[] newArray = copyOf(array);
        System.out.println(Arrays.toString(newArray));
    }
}

8.字符拼接

public class WorkArray {

   public static String toString(int[] array) {
        if(array == null){
            return null;
        }
        String str = "[" ;
        for (int i = 0; i < array.length; i++) {
            str+=array[i];//拼接方式
            //拼接完元素要拼接逗号,
            //在这个for循环里,if条件一直成立,所以可以不用判断
            if(i < array.length) {
                str += ",";
            }
        }
        //循环结束,把"]"补上;
        str+="]" ;
        return str;
    }

    public static void main10(String[] args) {
        int[] array = {1,2,3,4};
        String str = toString(array);
        System.out.println(str);
    }
}

9.找数组中出现一次的数字

在数组中重复出现的数字个数必须是偶数,如果重复出现的数字个数是奇数的话,解法就不是用下面这种解法

public class WorkArray {
    public static void main(String[] args) {
        int[] array = {1,2,4,4,3,2,1};
        int sum = array[0];
        for (int i = 1; i < array.length; i++) {
            sum = sum ^ array[i];
        }
        System.out.println(sum);
    }
}

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fly upward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值