Java编程:数组遍历的基本案例

一、一维数组遍历

1、数组遍历(依次输出数组中的每一个元素)

给定一个数组 int [] arr  = {44,6,66,7,965,};

	public static void main(String[] args) {
		
	//数组遍历(依次输出数组中的每一个元素)
	int [] arr  = {44,6,66,7,965,};
	System.out.print("[");

//该方法为反向遍历,也可运用到元素逆序

	for (int i = arr.length-1; i >= 0; i--) {
		
		System.out.print(arr[i]+",");
		
	}
	System.out.print("]");

可以得到结果

[965,7,66,6,44,]

2、数组获取最值(获取数组中的最大值最小值)

public static void main(String[] args) {
		int [] arr  = {44,6,66,7,965,};
		
        //调用方法返回最值

		int max = getMax(arr);
		System.out.println("max="+max);
		int min = getMin(arr);
		System.out.println("min="+min);
	}

	public static int getMin(int[] arr) {
		int min = arr[0];
		for (int i = 1; i < arr.length; i++) {
			if (arr[i]<min) {
				min = arr[i];	
			}
		}
		return min;
	}

	public static int getMax(int[] arr) {
		int max =arr[0];
		for (int i = 1; i < arr.length; i++) {
			if (arr[i]>max) {
				max=arr[i];
				
			}
		}
		return max;
	}
	

得到结果

max=965
min=6
 

3、数组排序和二分查找

二分查找需要数组是有序的

二分查找的基本思路:

获取最大和最小索引,求出中间元素的索引mid;

判断:若得到查找值key= mid,则满足条件,停止循环输出对应索引;

如得到key>mid,则取后半段,最新小索引为mid+1;

若得到key< mid ,则取前半段,新最大索引为mid-1;

若不存在则输出错误结果;

首先把数组进行排序,我们使用冒泡排序

public static void main(String[] args) {
		
		int [] arr = {4,874,41,44,81,478};

        //调用方法
		maopao(arr);

		//遍历冒泡排序后的数组
			System.out.print("排序后为:"+"[");
			for (int i = 0; i < arr.length; i++) {
				System.out.print(arr[i]+",");
			}
			System.out.println("]");
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入需要查询的元素:");
		int index = scanner.nextInt() ;
		int min = 0;
		int max = arr.length-1;
		while (min <= max) {
			int mid =( max+min)/2;
			if (index == arr[mid]) {
				System.out.println(index+"的对应索引为:"+mid);
				break;
			} else if (index > arr[mid]) {
				min = mid +1;
			}else if (index < arr [mid]) {
				max = mid -1;
			}
			
			}
		if (max<min) {
			System.out.println("不存在");
	}
}

	public static void maopao(int[] arr) {
		for (int i = 0; i < arr.length-1; i++) {
			for (int j = 0; j < arr.length-1; j++) {
				if (arr[j] > arr[j+1]) {
					int t  = arr[j];
					arr[j]= arr[j+1];
					arr[j+1] = t;
					
				}	
			}
		}	
	}

我们选择44为查询元素:

排序后为:[4,41,44,81,478,874,]
请输入需要查询的元素:
44
44的对应索引为:2

4、杨辉三角(二维数组练习)

分析:

A:如果是n行,那么最后一行是n列。

B:每一行的第一列和最后一列的元素是1。

C:规律:每一行的第二列开始数据是:上一行的上一列+上一行的同一列

D:把二维数组组成,然后遍历即可。

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入需要的行数:");
		int n = sc.nextInt();
		
		//确定n行n列的杨辉三角,建立一个二维数组
		int [][] arr = new int [n][n];
		for (int x = 0; x < n; x++) {

			//确定两边最外面的数为1
			arr[x][0]=1;
			arr[x][x]=1;
		}
		//从第三行开始计算
		for (int x = 2; x < n; x++) {
			//从第二列开始计算,两边数为1,计算时要减去
			for (int y = 1; y <= x-1; y++) {
				arr[x][y] = arr [x-1][y-1]+arr[x-1][y];
			}
		}
			//输出杨辉三角
			System.out.println("-----------------");
			for (int x = 0; x < arr.length; x++) {
				for (int y = 0; y <= x; y++) {
					System.out.print(arr[x][y]+"  ");				
				}
				System.out.println();
			}
		}

我们打印一个四行的杨辉三角

请输入需要的行数:
4
-----------------
1  
1  1  
1  2  1  
1  3  3  1  

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值