选择排序(Selection sort)是一种简单的排序算法,其原理是每一次都从待排序的数据元素中找到最小的或者最大的元素并和无序数据的第一个位置进行交换,这样无序位置的第一个位置变成有序的,然后继续对剩下的无序数据进行比较,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
算法Java代码实现:
package 算法;
//选择排序
public class Demo1 {
public static void selectSort(int[] a){
int len=a.length;
int temp=0;
int minindex=0;//存储最小元素的位置
for(int i=0;i<len-1;i++){
temp=a[i];
for(int j=i+1;j<len;j++){
if (temp>a[j]){
temp=a[j];
minindex=j;
}
}
if (minindex!=i){
temp=a[i];
a[i]=a[minindex];
a[minindex]=temp;
}
minindex=i+1;
}
}
//测试
public static void main(String[] args){
int a[]={3,5,1,4,2,9,6,8,7};
selectSort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
输出结果:
1
2
3
4
5
6
7
8
9