一维数组的应用&&冒泡排序

1.一维数组的应用

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

	public static int getMin(int[] arr){
		//参照物
		int min = arr[0] ;//假设第一个元素是最小值
		//从角标1开始遍历其他元素
		for(int x =1 ; x < arr.length ; x ++){
			//比较
			if(arr[x] < min){
				min = arr[x] ;
			}
		}
		return min ;
	}
	
	public static int getMax(int[] arr){
		//定义一个参照物
		int max = arr[0] ;
		//从角标1开始遍历其他元素
		for(int x = 1 ; x < arr.length ; x ++){
			//获取出来了
			//分别将当前遍历的元素依次和最大值进行比较
			if(arr[x] > max){
				max = arr[x] ;
			}
		}
		return max ;
	}
数组的元素逆序
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
	public static void reverse2(int[] arr){
		//start:表示开启索引值
		//end:表示最大索引值
		for(int start = 0 ,end = arr.length-1 ; start<end ; start ++,end --){
			//中间变量互换
			int temp = arr[start] ;
			arr[start] = arr[end] ;
			arr[end] = temp ;
		}
	}
	public static void reverse(int[] arr){
		//遍历数组:保证角标值小于数组长度/2
		for(int x = 0 ; x < arr.length/2 ; x ++){
			//中间变量方式互换
			int temp = arr[x] ;
			arr[x] = arr[arr.length-1-x] ; //后面的元素和前面的互换
			arr[arr.length-1-x] = temp ;
		}
	}
	//数组的遍历功能:
	public static void printArray(int[] arr){
		System.out.print("[") ;
		for(int x = 0 ; x < arr.length ; x ++){
			//判断
			if(x == arr.length-1){
				System.out.println(arr[x]+"]") ;
			}else{
				System.out.print(arr[x] +", ") ;
			}
		}
	}
}
数组元素查表法
数组名称[index:角标]访问元素
	
	假设:
		字符串数组:  数据类型[] 数组名称 = new 数据类型[]{元素1,....} ;
		String[] strs = {"星期一","星期二",
						"星期三","星期四","星期五","星期六","星期天"} ;
	
需求:键盘录入数据:查询当前星期几
import java.util.Scanner ;
class ArrayTest4{
	public static void main(String[] args){
		//字符串数组
		String[] strs = {"星期一","星期二",
					"星期三","星期四","星期五","星期六","星期天"} ;
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		//提示并录入数据
		System.out.println("请您输入一个数据(0-6):") ;
		int index = sc.nextInt() ;
		System.out.println("你要查询的是:"+strs[index]) ;
	}
}

2.冒泡排序

冒泡排序思想 
		
		两两比较,将较大的值往后放;第一次比较完毕,最大值就出现在最大索引处!
		依次这样比较:
		
			规律:
				第一次:有0个不比
				第二次:有1个不比
				...
				...
				比较的次数:数组长度-1次
public static void bubboleSort(int[] arr){
		
		for(int x = 0 ; x < arr.length-1 ; x ++){ //x = 0 ; 1  2,3  控制比较的次数
			for(int y = 0 ; y < arr.length-1-x ; y++){//y表示元素的角标
				 if(arr[y] > arr[y+1]){
					int temp = arr[y] ;
					arr[y] = arr[y+1] ;
					arr[y+1] = temp ;
				}
			}
		}	
	}

3.(二维数组)杨辉三角

1)行数和列数:都是6 ----->数据可以采用键盘录入!	
				二维数组的定义格式:
					格式1:int[][] arr = new int[num][num] ;
					
	2)任何一行的第一列和最后一列都是1
	3)从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和
		for(int x = 2 ;x < arr.length ; x ++){
			//内层循环
			/*
				y从1开始, 当前任何一行的第一列已经赋值1
				y<=x-1 : 最后一列也赋值为1
			*/
			for(int y = 1 ; y <=x -1; y ++){
				//中间的数据的值等于上一行的前一列+上一行的本列之和
				arr[x][y] = arr[x-1][y-1] + arr[x-1][y] ;
				
			}
		}
		
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值