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

1.打印数组

方法一(for循环):

public static void printArray(int array[]) {
        //打印数组
        for (int i = 0; i 

方法二(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

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--;
        }
    }

你可能感兴趣的:(javaSE,java,数据结构)