直接选择排序—数组排序方法

直接选择排序的排序速度要比冒泡排序快一些,也是常用的排序算法!!!
基本思想
直接选择排序的基本思路:是指将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,这样排序好的位置逐渐扩大,最后将整个数组都成为已排序好的格式。

举例:
有一个小学生,从包含数字1-10的乱序的数字堆中选择合适的数字,组成一个1-10的排序,而这个学生首先从数字堆中选出1,放在第一位,然后选择数字2(注意此时数字堆里面已经没有1了),放在第二位,依次类推,直到找到数字9,放在8的后面,最后剩下10,就不用选择了,直接放在最后就好啦。

算法实现

/*
 * 直接选择排序算法的实现
 * 
 */
public class 直接选择排序 {

	public static void main(String[] args) {
		int[] array = {42,12,56,33,1,3,45};
		//创建直接排序类的对象
		直接选择排序 sorter = new 直接选择排序();
		//调用排序对象的方法将数组排序
		sorter.sort(array);
	}
	/*
	 * 直接选择排序
	 * @param array
	 *        要排序的数组
	 */
	public void sort(int[] array) {
		int index;
		for(int i=1;i<array.length;i++) {
			index = 0;
			for(int j=1;j<=array.length-i;j++) {
				if(array[j]>array[index]) {
					index = j;
				}
			}
			//交换在位置array.length-i 和index(最大值)上的两个数
			int temp =array[array.length-i];//把第一个元素值保存到临时变量中
			array[array.length-i]=array[index];//把第二个元素保存到第一个元素单元中
			array[index] = temp;//把临时变量也就是第一个元素原值保存到第二个元素中
		}
		showArray(array);
	}
/*
 * 显示数组中低端所有元素
 * @param array
 *        要显示的数组
 */
	public void showArray(int[] array) {
		for(int i:array) {
			System.out.print(">"+i);
		}
		System.out.print(" ");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值