简单数组及简单排序

一、对一个容器操作(数组)

1、 数组的初始化
数组的静态初始化

int[] arrays = {1,2,3,212,2,};
数组的动态初始化:
int[] arrays = new int [6];

2、数组的定位

int item = arrays[3];
int item2 = arrays[6];

会出现数组越界的情况
3、数组的替换
arrays[2] = 100;即把第三位替换为100
4、数组的求长
int length = arrays.length;(length 为数组的属性,不用加括号)
5、数组遍历

for(int item : result){
			System.out.print(item);
		}

例:数组反转
① 在原有位置上做反转,不建立新数组

public class test {
	public static void main(String[] args){
		int[] arrays ={1,2,3,4,5,6};
		int i = arrays.length/2;
		for(int j=0;j<arrays.length/2;j++){
			int item  = arrays[j];
			arrays[j] = arrays[arrays.length-j-1];
			arrays[arrays.length-j-1] = item;
		}
		for(int a = 0;a<arrays.length;a++){
			System.out.print(arrays[a]);
		}
	}
}

② 新建新的数组做反转

 public class test {
	public static void main(String[] args){
		int[] arrays ={1,2,3,4,5,6};
		int[] result = new int[arrays.length];
		for(int i= 0;i<arrays.length;i++){
			result[i] = arrays[arrays.length-1-i];
		}
		for(int a = 0;a<result.length;a++){
			System.out.print(result[a]);
		}
	}
}

例:数组求和

public class test {
	public static void main(String[] args){
		int[] arrays ={1,2,3,4,5,6,7,8,9};
		int sum  = 0;
		for(int item : arrays){
			sum = sum+item;
		}
			System.out.print(sum);
	}
}

例:求数值中的最大值

public class test {
	public static void main(String[] args){
		int[] arrays ={1,2,3,4,5,6,7,8,9};
		int max  = 0;
		for(int item : arrays){
			if(max<item){
				max = item;
			}
		}
			System.out.print(max);
	}
}

例:求数组中最大值的角标

public class test {
	public static void main(String[] args){
		int[] arrays ={12,43,3,44,244,545,33,23};
		int max  = arrays[0];
		int index = 0;
		for(int i = 0;i<arrays.length;i++){
			if(max<arrays[i]){
				max = arrays[i];
				index = i;
			}
		}
			System.out.print(index);
	}
}

二、排序:

1、 直接排序:
两个for循环嵌套;外层确定循环中需要替换的为,内层负责比较
例:

public class test {
	public static void main(String[] args){
		int[] arrays ={12,43,3,44,87,66,54,11,33,23};
		for(int i=0;i<arrays.length;i++){
			for(int j = i;j<arrays.length;j++){
				if(arrays[i]<arrays[j]){
					int item = arrays[j];
					arrays[j] = arrays[i];
					arrays[i] = item;
				}
			}
		}
		for(int item : arrays){	
		System.out.print(item+" ");
		}
	}
}

2、 选择排序:
例:

public class test {
	public static void main(String[] args){
		int[] arrays ={12,43,3,44,87,66,54,11,33,23};
		for(int i=0;i<arrays.length;i++){
			int max = arrays[i];
			int index = i;
			for(int j = i;j<arrays.length;j++){
				if(max<arrays[j]){
					max=arrays[j];
					index = j;
				}
			}
			max = arrays[i];
			arrays[i] = arrays[index];
			arrays[index] = max;
		}
		for(int item : arrays){
			
		System.out.print(item+" ");
		}
	}
}

3、 冒泡排序
例:

public class test {
	public static void main(String[] args){
		int[] arrays ={12,43,3,44,87,66,54,11,33,23};
		for(int i=0;i<arrays.length;i++){
			for(int j = i;j<arrays.length-i-1;j++){
				if(arrays[j]<arrays[j+1]){
					int temp = arrays[j];
					arrays[j] = arrays[j+1];
					arrays[j+1] = temp;
				}
			}
		}
		for(int item : arrays){	
		System.out.print(item+" ");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值