zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    为什么接口类型可以直接new?
    Eclipse查看JDK源码
    模板模式与策略模式/template模式与strategy模式/行为型模式
    [LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal(根据二叉树的前序和中序遍历构建二叉树)
    [LeetCode] 114. Flattern Binary Tree to Linked List(将二叉树扁平化成单链表)
    [LeetCode] 208. Implement Trie (Prefix Tree)(实现字典树)
    [LeetCode] 337. House Robber Ⅲ(偷家贼之三)
    [LeetCode] 621. Task Scheduler(任务调度器)
    [LeetCode] 394. Decode String(解码字符串)
    [LeetCode] 11. Container with Most Water(盛水量最多的容器)
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6770153.html
Copyright © 2011-2022 走看看