数组中常见问题与案例

一维数组中的常见问题

1. 最值问题:最大值/最小值

   int[] arr = {13,87,65,24,57} ;
   问题分析:假设思想
     1)将数组中第一个元素arr[0]看为最大值
     2)从角标1开始遍历其他元素
     3)分别将当前遍历的元素依次和最大值进行比较,如果当前元素大于最大值,将当前元素内容赋值max变量。

2.数组的元素逆序

   int[] arr = {13,87,65,24,57} ;
   中心思想:
     将13 arr[0]–57 arr[arr.length-1]互换
     将87 arr[1]—24 arr[arr.length-1-1]互换…
     …
   保证:数组的长度/2

3.数组的元素基本查找

   查询数组中的元素在数组索引值。
   查询的数组: 可以无序的,也可以有序
   方法:使用for循环遍历数组,通过if判断确定数组中是否存在要 查找的数字。

4.冒泡排序

   思想:两两比较,将较大的值往后放;第一次比较完毕,最大值就出 现在最大索引处!依次这样比较;
   规律:
     第一次:有0个不比
     第二次:有1个不比
     …
     …
     比较的轮数:数组长度-1次
     每轮的比较次数:数组长度-1-i(元素下标)次

二维数组的应用

  杨辉三角形
  输出:

		1
		1 1
		1 2 1
		1 3 3 1 
		1 4 6 4 1 
		1 5 10 10 5 1

  分析:
    1)行数和列数:都是6(数据可以采用键盘录入)。
    2)任何一行的第一列和最后一列都是1
    3)从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和。

  实现过程:
    1)键盘录入一个数据:使用二维数组初始化

			int[][] arr = new int[n][n] ;

    2)给二维数组中的数据赋值.将定义二维数组遍历,外层循环控制行数,内层循环控制列数

			for(int x =0 ;  x < arr.length ; x ++){
				任何一行的第一列和最后一列都是1
			}

    3)再次遍历二维数组
      从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页