数组练习题(数组常用方法)

1.打印数组

方法一(for循环):

public static void printArray(int array[]) {
        //打印数组
        for (int i = 0; i <array.length ; i++) {
            System.out.print(array[i]+" ");
 
        }
        System.out.println();
    }

方法二(for-each循环):

int[] array = {1, 2, 3};
for (int x : array) {
System.out.println(x);
}

方法三(将数组转换成字符):

import java.util.Arrays
//包含数组常用操作的包
int[] arr = {1,2,3,4,5,6};
String newArr = Arrays.toString(arr);
System.out.println(newArr);

2.二分法查找数组数据

public static int search(int array[]) {
        //二分法查找数组中的数据
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你想查找的数据:");
        int i=sc.nextInt();;
        int left=0;
        int right=array.length-1;
        while(left<=right){
            int mid= (left+right)/2;
            if(i>array[mid]){
                left=mid+1;
            }else if(i<array[mid]){
                right=mid-1;
            }else{
                return mid;
            }
        }
        return -1;
    }

3.冒泡排序法:

public static void maopao(int array[]) {
        //冒泡排序法(数组)
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length-i-1; j++) {
                if(array[j]>array[j+1]) {
                    int num = array[j];
                    array[j]=array[j+1];
                    array[j+1]=num;
                }
            }
        }

    }

4.只出现一次的数字

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

public static int one(int array[]){
        //查找数组中孤立无援的数字
        int x=0;
        for (int i = 0; i < array.length; i++) {
            int j=array[i];
            x=x^i;
            }
            return x;
        }

5.多数元素

题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。假设数组是非空的,并且给定的数组总是存在多数元素。

public  static  int element(int array[]){
        int count=1;
        int num=array[0];
            for (int i = 0; i < array.length; i++) {
                if(count==0){
                    num=array[i];
                    count++;
                }else if(num==array[i]){
                    count++;
                }else{
                    count--;
                }
            }
            return num;
        }

6.存在连续三个奇数的数组

题目:给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

public static boolean jishu(int array[]){
        int count=0;
            for (int i = 0; i < array.length; i++) {
                if(array[i]%2!=0){
                    count++;
                }else{
                    count=0;
                }
                if(count==3){
                    break;
                }
            }
            if(count>=3){
                return true;
            }
            else{
                return false;
            }
        }

7.求数组中元素的平均值

public static double avg(int[] arr) {
//求数组平均值
int sum = 0;
for (int x : arr) {
sum += x;
}
return (double)sum / (double)arr.length;
}

8.顺序查找数组数据

public static int find(int[] arr, int data) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == data) {
return i;
}
}
return -1; // 表示没有找到
}

9.数组排序(内置算法)

import java.util.Arrays;
public static void main(String[] args) {
int[] arr = {8,5,7,3,4};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}

10.数组逆序

public static void reverse(int[] arr) {
        int left = 0;
        int right = arr.length - 1;
        while (left < right) {
            int tmp = arr[left];
            arr[left] = arr[right];
            arr[right] = tmp;
            left++;
            right--;
        }
    }

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值