Java数组的使用实例

1.数组的反转实现

将数组反转过来,实现代码:

package com.demo.arry;
//数组的反转
public class demo03 {
    public static void main(String[] args) {
        int[] arr={11,22,33,44,55,66};
        prints(arr);
        turn(arr);
        prints(arr);
    }
    public  static  void turn(int ...arr){
        for (int star=0 ,  fina= arr.length-1;star<arr.length/2;star++){
            int temp=arr[star];
            arr[star]=arr[fina];
            arr[fina]=temp;
            fina--;
        }
    }
    public static void prints(int... arr) {//封装成一个int数组
        System.out.print("数组是:[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.println(arr[i] + "]");
            } else {
                System.out.print(arr[i] + ",");
            }
        }
    }
}

2.用数组实现冒泡排序,将数组元素进行升序排列,实现代码:

package com.demo.arry;
//冒泡排序
public class demo04 {
    public static void main(String[] args) {
        int [] a={5,4,7,9,32,15,2,1,8};
        prints(a);//输出排序前的数组
        change(a);//数组排序
        prints(a);//输出排序后的数组

    }
    public static  void  change(int ...arr){

        for (int i=1;i<arr.length;i++){//外层循环控制求几次最大值
            for(int j=0;j< arr.length-i;j++){//内层循环控制每次求最大值比较几次
                if(arr[j]>arr[j+1]){//与后一个元素比较
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }
    public static void prints(int... arr) {//封装成一个int数组
        System.out.print("数组是:[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.println(arr[i] + "]");
            } else {
                System.out.print(arr[i] + ",");
            }
        }
    }
}

3.数组的二分查找,利用递归实现,代码如下:

package com.demo.arry;
//在数组中查找指定元素第一次出现的索引
public class demo05 {
    public static void main(String[] args) {
        int [] a={5,4,7,9,32,15,2,1,8};
        int [] c={1,2,3,4,5,6,7,8,9,10,15,16,19,20};
        int b=17;
        //find(b,a);
        int low =0;
        int top=c.length-1;
        int mid=(low+top)/2;
        find_2(mid,top,low,c,b);
    }
   /* public  static  void  find(int b,int ...a){
        for (int i=0;i<a.length;i++){
            if (a[i]==b){
                System.out.println("b在数组中的索引序列是:"+(i+1));
                break;
            }
            if(i==a.length-1){
                System.out.println("b元素不在数组中");
            }
        }
    }*/
    //
    public static void find_2(int mid, int top, int low,int[] a,int b){
        if(top<low){
            System.out.println("b元素不在数组中");
            return;
        }else if (a[mid]<b){
            low=mid+1;
            mid=(mid+top)/2;
            find_2(mid,top,low,a,b);
        }else if(a[mid]>b){
            top=mid-1;
            mid=(mid+low)/2;
            find_2(mid,top,low,a,b);
        }else if(a[mid]==b){
            System.out.println("b在数组中的索引序列是:"+(mid+1));
            return;
        }
        return;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值