Java实现数据-选择排序

选择排序-版本V1.0

public static void main(String[] args) {
		int[] arr = {9,6,2,3,5,4,3,0,8,7};
		for(int y=0;y<arr.length;y++) {
			int index = y;
			int mix = arr[y];
			for(int i=y+1;i<arr.length;i++) {
				mix=arr[index];
				//1、找出最小值
				if(mix>arr[i]) {
					mix=arr[i];
					index=i;
				}
			}
			//2、替换最小值和首次比较值
			arr[index]=arr[y];
			arr[y]=mix;
			
			for(int i=0;i<arr.length;i++) {
				System.out.print(arr[i]+" ");
			}
			System.out.println();
		}
		
	}

选择排序-版本V1.1

public static void main(String[] args) {
		int[] arr = {9,6,2,3,5,4,3,0,8,7};
		for(int y=0;y<arr.length;y++) {
			int index = y;
			//1、找出最小值位置
			for(int i=y+1;i<arr.length;i++) {
				index = arr[index]>arr[i]?i:index;
			}
			//2、替换最小值位置和首位的值
			int mix = arr[index];
			arr[index]=arr[y];
			arr[y]=mix;
			
			for(int i=0;i<arr.length;i++) {
				System.out.print(arr[i]+" ");
			}
			System.out.println();
		}
	}

选择排序-验证正确性V2.0

public static void main(String[] args) {
		int[] arr = new int[10];
		Random random = new Random();
		
		for(int i=0;i<arr.length;i++){
			arr[i]=random.nextInt(100);
		}
		
		System.out.println("arr--->开始初始化");
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		System.out.println("arr--->初始化结束");
		
		System.out.println("arr--->开始克隆");
		int[] arr_clone = arr.clone();
		for(int i=0;i<arr_clone.length;i++){
			System.out.print(arr_clone[i]+" ");
		}
		System.out.println();
		System.out.println("arr--->克隆完成");
		System.out.println("arr--->开始手动选择排序");
		for(int y=0;y<arr.length;y++){
			
			int index = y;
			for(int i=y+1;i<arr.length;i++){
				if(arr[index]>arr[i]){
					index = i;
				}
			}
			int mix = arr[index];
			arr[index]=arr[y];
			arr[y]=mix;
		}
		System.out.println("arr--->排序完成");
		System.out.println("arr--->排序后打印");
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		
		System.out.println("arr--->排序后验证开始");
		Arrays.sort(arr_clone);
		boolean verification_result = true;
		for(int i =0;i<arr.length;i++){
			if(arr[i]!=arr_clone[i]){
				verification_result= false;
				}
		}
		System.out.println("arr--->排序后验证结果:"+verification_result);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值