javaCode的数组2

数组的两种定义格式

1:第一种
格式1:
需要一个容器,但是不明确容器的具体数据。
元素类型[] 数组名=new 元素类型[长度]。
int[] arr=new int[3];

2:第二种
格式二:
需要一个容器,存储已知的具体数据。
元素类型[] 数组名=new 元素类型[]{元素1,元素2,……};
int[] arr=new int[]{89,34,29,23};
int[] arr2={89,34,29,23};

对数组的操作

1:对数组遍历

    public class Demo{
        public static void main(String[] args){
            int[] arr=new arr[]{1,34,45,51,2,3};
            //第一种循环遍历
            for(int x=0;x<arr.length;x++){
                            System.out.println("arr["+x+"]="arr[x]);
            }
            //第二种循环遍历
            for(int y=arr.length-1;y>=0;y--){
                            System.out.println("arr["+x+"]="arr[x]);
            }
        }
    }

2:对数组的操作取最值

    //第一种取最值的方式
    public class Demo{
        public static void main(String[] args){
            int[] arr =new int[1,2,41,12,345,11];

            int maxElement=arr[0];
            for(int x=1;x<arr.length;x++){
                if(arr[x]>maxElement){
                    maxElement=arr[x];
                }
            }
            Sysout.out.println("maxElement="+maxElement);
        }
    }
    //第二种取最值的方式
    public class Demo{
        public static void main(String[] args){
            int[] arr =new int[1,2,41,12,345,11];
            int maxIndex=0;
            for(int x=1;x<arr.length;x++){
                if(arr[x]>arr[maxIndex]){
                    maxIndex=x;
                }       
            }
            System.out.println(arr[maxIndex]);
        }
    }

3:数组的操作从小到大的排序

    public class Demo{
        public static void main(String[] args){
            int[] arr =new int[1,2,41,12,345,11];

            for(int x=0;x<arr.length;x++){
                for(int y=x+1;y<arr.length;y++){
                    if(arr[x]>arr[y]){
                        int temp=arr[x];//记录大的值
                        arr[x]=arr[y];
                        arr[y]=temp;
                    }
                }
            }
        }
    }

4:数组操作冒泡排序

    public class Day05Array05_1 {
    public static void main(String[] args) {
            int[] arr={34,19,11,109,3,56};
        //  Arrays.sort(arr);//java中定义的冒泡排序方法

            for(int x=0;x<arr.length;x++){
                System.out.println(arr[x]);
            }

            maopao(arr);
    }

    private static void maopao(int[] arr) {
        /*
         * 内循环:
         * -1:为了避免角标越界
         * -x:为了让外循环增加一次,内循环参数与比较
         *      的元素个数递减
         * */
        for(int x=0;x<arr.length-1;x++ ){

                for(int y=0;y<arr.length-1-x;y++){
                    if(arr[y]>arr[y+1]){
                        int temp=arr[y]; 
                        arr[y]=arr[y+1];
                        arr[y+1]=temp;
                    }
        }
    }


        for(int k=0;k<arr.length;k++){
            System.out.println(arr[k]);
        }
}
}

5:数组的操作查找

    public class Demo{
        public static void main(String[] args){
            int[] arr={1,2,3,4,5};
            int index=getIndex(arr, 5);
            System.out.println("index="+index);
        }

        public static int getIndex(int[] arr,int key){
            for(int x=0;x<arr.length;arr++){
                    if(arr[x]=key){
                        return key;
                    }
            }
            return -1;
        }

    }

6:数组-折半查找(二分法)
二分法使用的前提是数据必须要有序

    public class Demo(){
        public static void main(String[] args){
            int[] arr={1,2,3,4,5,6,7,8};
            int index=halfSearch(int[] arr;5);
            System.out.println("index:"+index);
        }

    public static int halfSearch(int[] arr,int key){
            int min,max,mid;        
            min=0;
            max=arr.length-1;
            mid=(max+min)/2;

            while(arr[mid]!=key){
                if(key>arr[min]){
                    min=mid+1;      
                }else if(key<arr[mid]){
                    max=mid-1;  
                }
                if(max<min){
                    return -1;
                }
                mid=(max+mid)/2;
            }
                return mid;
        }
    }

    public static int halfSearch_2(int[] arr,int key){
        int max,min,mid;
        min=0;
        max=arr.length-1;
        while(min<=max){
                mid=(max+min)/2;
                if(key>arr[mid]){
                    min=mid+1;
                }else if(key<arr[mid]){
                    max=mid-1;
                }else{
                    return mid;
                }
        }
        return -1;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值