基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止
public
static
void
selectSort(
int
[]a)
{
int
minIndex=
0
;
int
temp=
0
;
if
((a==
null
)||(a.length==
0
))
return
;
for
(
int
i=
0
;i<a.length-
1
;i++)
{
minIndex=i;
//无序区的最小数据数组下标
for
(intj=i+
1
;j<a.length;j++)
{
//在无序区中找到最小数据并保存其数组下标
if
(a[j]<a[minIndex])
{
minIndex=j;
}
}
if
(minIndex!=i)
{
//如果无序区的最小值位置不是默认的第一个数据,则交换之。
temp=a[i];
a[i]=a[minIndex];
a[minIndex]=temp;
}
}
}