二分类数据集 Zookeeper使用 Mxnet PyCharm scipy Apache Pivot教程 reactjs multithreading methods scripting dns vue使用教程 vue响应式 android项目开发 安卓程序源代码 单片机开发板工作原理 mysql连接 python函数参数 python匹配字符串 java新特性 java编程环境 java中的队列 java中基本数据类型 java判断文件是否存在 销售单打印软件 高等数学同济第七版 eml文件阅读器下载 getelementbyid ansys安装教程 茸好珠 脚本大师 jsp源码下载 ftp客户端软件 ps高手教程 死从天降成就 上单艾克出装 EarthView 混凝土配合比计算软件 摸摸头不哭表情包 手机下载微博客户端
当前位置: 首页 > 学习教程  > 编程语言

算法的考查:数组的复制、反转、查找(线性查找、二分查找)

2020/11/4 15:08:01 文章标签:

1.代码 package day07; /* 算法的考查:数组的复制、反转、查找(线性查找、二分查找)*/ public class ArrayTest2 {public static void main(String[] args) {String[] arrnew String[]{"JJ","DD","MM","…

1.代码

package day07;
/*
算法的考查:数组的复制、反转、查找(线性查找、二分查找)
 */
public class ArrayTest2 {
    public static void main(String[] args) {
        String[] arr=new String[]{"JJ","DD","MM","BB","GG","AA"};

        //数组的复制(区别于数组变量的赋值:arr1=arr)
        String[] arr1=new String[arr.length];
        for (int i = 0; i < arr1.length; i++) {
            arr1[i]=arr[i];
        }

        //数组的反转
//        //方法一:
//        for (int i = 0; i < arr1.length/2; i++) {
//            String temp=arr[i];
//            arr[i]=arr[arr.length-i-1];
//            arr[arr.length-i-1]=temp;
//        }
//        //方法二:
//        for (int i = 0, j = arr.length-1;i<j; i++,j++) {
//            String temp=arr[i];
//            arr[i]=arr[j];
//            arr[j]=temp;
//        }
        //遍历
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"\t");
        }

        System.out.println();
        //查找(搜索)
        //线性查找:
        String dest="BB";
        boolean isFlag=true;
        for (int i = 0; i < arr.length; i++) {
            if (dest.equals(arr[i])){
                System.out.println("找到了指定的元素,位置为:"+i);
                isFlag=false;
                break;
            }
        }
        if (isFlag){
            System.out.println("很遗憾,没有找到!");
        }

        //二分法查找  前提:所要查找的数组必须有序
        int[] arr2=new int[]{-98,-34,2,34,54,66,79,105,210,333};
        int dest1=-355;
        int head=0; //初始的首索引
        int end=arr2.length-1; //初始的末索引
        boolean isFlag1=true;
        while (head<=end){
            int middle=(head+end)/2;
            if (dest1==arr2[middle]){
                System.out.println("找到了指定的元素,位置为:"+middle);
                break;
            }else if (arr2[middle]>dest1){
                end=middle-1;
            }else{//arr2[middle<dest1
                head=middle+1;
            }
        }
        if (isFlag1){
            System.out.println("很遗憾,没有找到!");
        }
    }
}

2.结果

JJ	DD	MM	BB	GG	AA	
找到了指定的元素,位置为:3
很遗憾,没有找到!

本文链接: http://www.dtmao.cc/news_show_350344.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?