欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java入坟day06 双倍困难の二维数组(杨辉三角)(二分查找法)

程序员文章站 2022-06-24 12:36:01
java入坟day06 双倍困难の二维数组(杨辉三角)(二分查找法)二维数组变量 数组 二维数组随着数据量的不断增大,我们需要更大的容器来装数据,这个时候,一维内存已经不足以满足所需,我们需要的是二维“平面”数组。画图分析。第一个【】代表 的是:这个二维数组由几个一维数组构成,也是这个二维数组的长度第二个【】代表 的是,构成这个二维数组的一维数组,它的长度是多少1.二维数组的定义:赋值:二分查找法定义一个有序数组,折半比较注意,当只剩下最后两个元素时,如何避免死循环...

java入坟day06 双倍困难の二维数组(杨辉三角)(二分查找法)

二维数组

变量 数组 二维数组
随着数据量的不断增大,我们需要更大的容器来装数据,这个时候,一维内存已经不足以满足所需,我们需要的是二维“平面”数组。画图分析。

第一个【】代表 的是:这个二维数组由几个一维数组构成,也是这个二维数组的长度
第二个【】代表 的是,构成这个二维数组的一维数组,它的长度是多少

1.二维数组的定义:
Java入坟day06   双倍困难の二维数组(杨辉三角)(二分查找法)
Java入坟day06   双倍困难の二维数组(杨辉三角)(二分查找法)
Java入坟day06   双倍困难の二维数组(杨辉三角)(二分查找法)
赋值:
Java入坟day06   双倍困难の二维数组(杨辉三角)(二分查找法)

二分查找法

定义一个有序数组,折半比较
注意,当只剩下最后两个元素时,如何避免死循环。

/*二分查找法,递归版*/
    private static void erfenchazhao2(int[] arr, int i,int start,int end) {
        int mid = (start+end)/2;
        if (i==arr[mid]){
            System.out.println("找到了,下标为"+mid);
            return;
        }
        else if (i>arr[mid]){
            start = mid+1;
        }
        else if (i<arr[mid]){
            end = mid-1;
        }
        if (start<=end){
            erfenchazhao2(arr,i,start,end);
        }else {
            System.out.println("找不到");
        }
    }
/*二分查找法循环*/
    private static void erfenchazhao(int[] arr,int X) {
        int start = 0,end = arr.length-1, mid = (start+end)/2;
        while (start<=end){
            if (X==arr[mid]){
                System.out.println("找到了,下标为"+mid);
                return;
            }
            else if (X>arr[mid]){
                start = mid+1;
            }
            else if (X<arr[mid]){
                end = mid-1;
            }
            mid = (start+end)/2;
        }
        System.out.println("找不到");
    }

杨辉三角形!!!!!!!!!!!

2.打印杨辉三角形(要求打印10行),如下所示:(使用二维数组)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

int[][] arr=new int[10][];
		for(int i=0;i<arr.length;i++) {
			arr[i]=new int[i+1];
		}
		for(int i=0;i<arr.length;i++) {
			for(int j=0;j<arr[i].length;j++) {
				if(j==0 || i==j) {
					arr[i][j]=1;
				}else {
					arr[i][j]=arr[i-1][j]+aarr[i-1][j-1];
				}
			}
		}
		for(int i=0;i<arr.length;i++) {
			int num=(arr.length-i)/2;
			for(int k=0;k<=num;k++) {
				System.out.print("\t");
			}
			for(int j=0;j<arr[i].length;j++) {
				System.out.print(arr[i][j]+"\t");
			}
			System.out.println();
		}

博客最丑杨辉三角形

Java入坟day06   双倍困难の二维数组(杨辉三角)(二分查找法)

本文地址:https://blog.csdn.net/zyznb2/article/details/110826403