算法原理:通过n-i次比较整除剩余的未排序的记录中最小的值与第i个记录交换。
算法实现:
import java.util.*;
public final class Test {
public static void printf(int []a)
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.print("\n");
}
public static int selecMin(int[]a,int i)
{
int indexj=i;
int min=a[i];
for(int j=i+1;j<a.length;j++)
{
if(a[j]<min)
{
indexj=j;
min=a[j];
}
}
return indexj;
}
public static void SelectSort(int[]a)
{
for(int i=0;i<a.length;i++)
{
swap(a,i,selecMin(a,i));//从i到n中找到最小的值与i交换
printf(a);
}
}
public static void swap(int []a,int l,int h)
{
int tem=a[l];
a[l]=a[h];
a[h]=tem;
}
public static void main(String[]args)
{
int[]test={1,2,6,8,4,5,7,9,3,10,22,17,19,21,20,14,11,13,15,16,18,12};
SelectSort(test);
}
}