javaSE_06Java中的数组(array)-练习

(1),数组的两种遍历方式,顺序查找,二分查找,求最大最小数,冒泡排序,选择排序。

public class Test1{
    public static void main(String[] args){
        //1.数组的两种遍历方式,
        int[] nums={34,54,29,3,9,234,9,5,56};
        //for循环遍历数组,特点:有下标值
        for(int i=0;i<=nums.length-1;i++){
            System.out.print(nums[i]+" ");
        }
        System.out.println();

        //增强for循环遍历数组,特点是无下标值
        for(int d:nums){
            System.out.print(d+" ");
        }

        System.out.println();
        //2.顺序查找,特点:可以是无序数组
        int a=nums[4];
        for(int i=0;i<=nums.length-1;i++){
            if(a==nums[i]){
                System.out.println("要查找的数值是第"+(i+1)+"个");
            }
        }

        //3.二分查找,特点:必须是有序数组,也不能有重复数据
        int[] nums2={1,3,5,8,9,10,23,45,53};
        int b=nums2[3];
        int min=0;
        int max=nums2.length-1;
        int mid=(min+max)/2;
        do{
            if(b==nums2[mid]){
                System.out.println("要查找的数值是第"+(mid+1)+"个");
                break;
            }else if(b<nums2[mid]){
                max=mid-1;
            }else{
                min=mid+1;
            }
            mid=(min+max)/2;
        }while(min<=max);


        //4.求最大最小数
        int max1=nums[0];
        int min1=nums[0];
        for(int i=0;i<nums.length-1;i++){
            if(max1<nums[i]){
                max1=nums[i];
            }
        }
        System.out.println("数组nums的最大值:"+max1);
        for(int i=0;i<nums.length-1;i++){
            if(min1>nums[i]){
                min1=nums[i];
            }
        }
        System.out.println("数组nums的最小值:"+min1);
        //冒泡排序:相邻两个数进行比较,若前面的大,那就与后一个数进行交换
        System.out.println("对nums冒泡排序的结果如下:");

        for(int j=0;j<=nums.length-2;j++){
            for(int i=0;i<=nums.length-2-j;i++){
                if(nums[i]>nums[i+1]){
                    int c=nums[i+1];
                    nums[i+1]=nums[i];
                    nums[i]=c;
                }
            }
        }
        for(int ns:nums){
            System.out.print(ns+" ");
        }
        //选择排序:进行比较获取最小数的小标,把他赋值给第一个数
        System.out.println("对nums选择排序的结果如下:");
        for(int j=0;j<=nums.length-2;j++){
            int key=j;
            for(int i=j+1;i<=nums.length-1;i++){

                if(nums[k]>nums[i]){
                    key=i;
                }
            }
            int temp=arr[j];
            nums[j]=nums[key];
            arr[key]=temp;
        }
    }
}

(2),定义一个方法,用于得到数组的最大值和最小值,并将这两个结果进行返回
提示:返回的类型 int[]

public class Test1{
    public static void main(String[] args){
        //定义一个方法,用于得到数组的最大值和最小值,并将这两个结果进行返回
        int[] nums={2,9,3,18,23,86,66,-23,34};
        int[] maxMin=getMaxMin(nums);
        System.out.println("该数组中的最大值为:"+maxMin[0]+",最小值为:"+maxMin[1]);
    }

    public static int[] getMaxMin(int[] array){
        int max=array[0];
        int min=array[0];
        for(int i=1;i<=array.length-1;i++){
            if(max<array[i]){
                max=array[i];
            }
            if(min>array[i]){
                min=array[i];
            }
        }
        int[] maxMin={max,min};
        return maxMin;
    }
}
posted @ 2017-04-05 10:13  TCB_Java  阅读(179)  评论(0编辑  收藏  举报