插入排序,二分查找,数组取反,两个同种类型数组合并

插入排序 

/**
     * 插入排序
     */
    public static void main(String[] args) {
        int[] arr = new int[]{8,5,6,4,9,7,2,1,3,2};
        //数组遍历的次数
        for (int i = 1; i <arr.length; i++) {
            //提取出来的数
            int n=arr[i];
            //比较数位置
            int j =i;
            //j!=0因为这边j如果等于零的话他就会报异常,当index=0时,那么0-1不就等于-1了吗,所以这边时超出异常!
            while (j>0&&n<arr[j-1]){
                arr[j]=arr[j-1];
                j--;
            }
            //装第一次吧n拿出来的那个数,然后又放到j里面去
            arr[j]=n;
            System.out.println(Arrays.toString(arr));

        }
    }

二分查找

/**
     * 二分查找
     */
    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7,8};
        int key = 9;
        //开始位置
        int begin = 0;
        //结束位置
        int end = array.length - 1;
        //找到的位置
        int position = -1;
        //如果开始位置小于等于结束位置,继续查找
        while(begin <= end){
            //计算中间位置
            int middle = (begin + end) / 2;
            //将中间数和查找数进行比较
            if(key == array[middle]){
                //找到了
                position = middle;
                break;
            }else if(key > array[middle]){
                //查找数比中间数大,就淘汰中间数前面的所有数
                begin = middle + 1;
            }else{
                //查找数比中间数小,就淘汰中间数后面的所有数
                end = middle - 1;
            }
        }
        if(position != -1){
            System.out.println("查找数的位置: " + position);
        }else{
            System.out.println("没有找到");
        }
    }

数组取反

/**
     * 数组元素反转
     * @param args
     */
    public static void main1(String[] args) {

        /**
         * 实现数组的反转。
         *  		方式一:临时变量
         *  			方式二:创建一个新的数组,倒序遍历旧数组中的元素,然后按照顺序复制给新数组,
         *  				然后再把新数组的值复制到旧数组当中
         *           方式三:创建一个新数组,长度是旧数组的长度。将旧数组倒序遍历获取数组中的元素
         *                  拿到元素之后从头开始赋值给新数组当中,最后将新数组的地址值赋值给旧数组
         *
         */
        //1、
        String[] str = new String[]{"AA","BB","CC","DD","EE","FF","GG"};
        /*for(int i = 0; i < str.length / 2; i++){
            String temp = str[i];
            str[i] = str[str.length - i - 1];
            str[str.length - i - 1] = temp;
            System.out.println(Arrays.toString(str));
        }*/
        //2、
        /*for(int i = 0,j = str.length - 1; i < j; i++,j--){
            // 交换
            String temp = str[i];
            str[i] = str[j];
            str[j] = temp;
            System.out.println(Arrays.toString(str));
        }*/
        //3、
        String[] newArr = new String[str.length];       // 创建新数组,数组的长度是旧数组的长度
        for (int i = str.length - 1, j = 0; i >= 0; i--, j++) {
            newArr[j] = str[i];
        }
        // 循环完毕之后,切记要将newArr数组的地址值赋值给str数组
        str = newArr;
        // 遍历str数组,查看是否反转了
        for(int i = 0; i < str.length; i++){
            System.out.print(str[i] + " ");
        }


    }

两个同种类型数组合并

/**
     * 两个数组合并
     * @param args
     */
    public static void main(String[] args) {
        //方法二  循环遍历
        // 两个数组合并
        String[] str1 = {"Hello","world","java"};
        String[] str2 = {"Veriable","syntax","interator"};
        String[] newStr = new String[str1.length+str2.length];
        //newStr = str1;数组是引用类型
        for(int x=0;x<str1.length;x++){
            newStr[x] = str1[x];
        }
        for(int y=0;y<str2.length;y++){
            newStr[str1.length+y]=str2[y];
        }
        for(int y=0;y<newStr.length;y++){
            System.out.println(newStr[y] + " ");
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值