选择排序的核心思想每一次循环将最小的那个数找出来放在右边,首先将数组中的元素都比较一遍,记录下较小的元素的小标,然后将改下标与随后的元素进行相比,最后交换第一各元素和最小元素的下标的值。
class SelectionSort
{
public static void main(String[] args)
{
int[] a = new int[]{1,5,2,6,4};
int[] c = a;
int[] b = new int[a.length];
for (int i = 0;i<a.length ;i++ )
{
int min = i;
for (int j =i+1;j<a.length ;j++ )
{
if (a[min]>a[j])
{
min = j;//将最较小值元素的下标保存下来
}
}
exch(a,i,min);//得到的最小值的下标,对于一个循环只交换一次
}
printArr(c);
}
public static void printArr(int[] b)
{
for (int i= 0;i<b.length; i++ )
{
if (i==0)
{
System.out.print("{"+b[i]+",");
}
else if (i<b.length-1)
{
System.out.print(b[i]+",");
}
else
System.out.println(b[i]+"}");
}
}
public static void exch(int[] a,int i,int j)
{
int temp= a[i];
a[i]=a[j];
a[j]=temp;
}
}