选择排序(重点)

简介

选择排序的核心实现思路,是随机确定一个标志位(一般为第一个数字)作为最小数,然后向后遍历,找到比标志位更小的数字后,便与标志位互换位置,并更新最小数。选择排序同样可以进行升序或降序排列。

选择排序升序思路:

1. 将当前位置上的数,与它后面的每个数进行比较,选择出最小的那个数,交换到当前位置;

2. 循环选择当前位置上的数。

选择排序降序思路:

1. 将当前位置上的数,与它后面的每个数进行比较,选择出最大的那个数,交换到当前位置;

2. 循环选择当前位置上的数。

实现案例

以下是以升序的方式实现的选择排序代码,供大家参考。

public class Demo12 {

	public static void main(String[] args) {
		// 选择排序

		// 待排序的数组
		int[] arr = { 1, 3, 46, 22, 11 };

		for (int j = 0; j < arr.length-1; j++) {
	        //选择下标为0的位置
	        int min = j;
	        
	        //将当前这个数与后面的每个数进行比较
	        for (int i = j+1; i < arr.length; i++) {
	        	//如果当前数字小于标记的最小值,则将当前数字标记为最小值
	            if(arr[min] > arr[i]) {
	                min = i;
	            }
	        }
	        
	        //如果当前数字不是最小的,则进行交换
	        if(min != j) {
	            int temp = arr[j];
	            arr[j] = arr[min];
	            arr[min] = temp;
	        }
	    }
		
		//遍历排序后的数组
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+"\t");
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值