排序前:
70 80 31 37 10 1 48 60 33 80
1.?????
[1] 80 31 37 10 70 48 60 33 80
選出最小值
1
2.?????
[1 10] 31 37 80 70 48 60 33 80
選出最小值
10
3.?????
[1 10 31] 37 80 70 48 60 33 80
選出最小值
31
4.?????
[1 10 31 33] 80 70 48 60 37 80 ......
5.?????
[1 10 31 33 37] 70 48 60 80 80 ......
6.?????
[1 10 31 33 37 48] 70 60 80 80 ......
7.?????
[1 10 31 33 37 48 60] 70 80 80 ......
8.?????
[1 10 31 33 37 48 60 70] 80 80 ......
9.?????
[1 10 31 33 37 48 60 70 80] 80 ......
[代碼]
/**?*/
/**
?
??*?選擇排序
??*??
@param
??data:等待排序整型數(shù)組
??*??
??*??data?=?{70,?81,?31,?37,?10,?1,?48,?60,?33,?80}
??*??排序結(jié)果:??
??*????????第?1?次排序:81?70?31?37?10?1?48?60?33?80?
??*????????第?2?次排序:81?80?31?37?10?1?48?60?33?70?
??*????????第?3?次排序:81?80?70?37?10?1?48?60?33?31?
??*????????第?4?次排序:81?80?70?60?10?1?48?37?33?31?
??*????????第?5?次排序:81?80?70?60?48?1?10?37?33?31?
??*????????第?6?次排序:81?80?70?60?48?37?10?1?33?31?
??*????????第?7?次排序:81?80?70?60?48?37?33?1?10?31?
??*????????第?8?次排序:81?80?70?60?48?37?33?31?10?1?
??*????????第?9?次排序:81?80?70?60?48?37?33?31?10?1?
???
*/
?

public
?
void
?selectSort(
int
[]?data)?
{
????????
int
?max?
=
?data.length;
????????
int
?m,?temp;


????????
for
?(
int
?i?
=
?
0
;?i?
<
?max?
-
?
1
;?i
++
)?
{
????????????m?
=
?i;

????????????
for
?(
int
?j?
=
?i?
+
?
1
;?j?
<=
?max?
-
?
1
;?j
++
)?
{

????????????????
if
?(data[j]?
>
?data[m])?
{
????????????????????m?
=
?j;
????????????????}
????????????}
????????????
if
?(m?
!=
?i)?
{
????????????????temp?
=
?data[i];
????????????????data[i]?
=
?data[m];
????????????????data[m]?
=
?temp;
????????????}
????????????System.out.print(
"
第?
"
?
+
?(i?
+
?
1
)?
+
?
"
?次排序:
"
);

????????????
for
?(
int
?k?
=
?
0
;?k?
<=
?max?
-
?
1
;?k
++
)?
{
????????????????System.out.print(data[k]?
+
?
"
?
"
);
????????????}
????????????System.out.println();
????????}
????}