码迷,mamicode.com
首页 > 编程语言 > 详细

Java-选择排序

时间:2015-06-08 23:28:50      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:java

public static void selectSort(int[] a){
	if(a == null){
		return;
	}

	int n = a.length;
	int minIndex = 0;

	//从无序区中选一个最小的数放在有序区的最后,初始时认为整个数组都是无序的,选一个最小的数放到第一位
	for(int i=0; i<n; i++){
		minIndex = i;
		for(int j=i+1; j<n; j++){
			if(a[j]<a[minIndex]){
				minIndex = j;
			}
		}
		
		//交换位置,把无序区中最小的元素放到有序区的最后
		int temp = a[i];
		a[i] = a[minIndex];
		a[minIndex] = temp; 
	}

}


直接选择排序和插入排序类似,都将数据分为有序区和无序区。

二者不同的是,插入排序是将无序区的第一个元素直接插入到有序区中去,初始时默认第一个元素是有序的,一步步缩小无序区范围。

选择排序是先在无序区中选出一个最小的元素,然后放到有序区的后面第一位置上。

同时,选择排序也是一种不稳定的排序,例如,4,3,4,1,2这个序列,第一次交换时会将第一个4和1交换,那么原序列中两个4的相对顺序就被破坏啦。

Java-选择排序

标签:java

原文地址:http://blog.csdn.net/zhuyunhe/article/details/46417313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!