原理:对于给定的一组记录,经过一轮比较后得到最小的记录,然后将该记录与第一个记录进行交换;重复操作,直到进行比较的记录只有一个时为止。
注意:程序里要有判断是否是最大值,否则第一个会成为最大值
SelectSort
package 选择排序;
public class SelectSort {
public void sort(int a[]) {
for (int i = 0; i < a.length; i++) {
int min = a[i];
int n = 0;
// System.out.println("min:"+min);
for (int j = i; j < a.length; j++) {
if (a[j] < min) {
min = a[j];
n = j;
}
}
if (n != 0) {
a[n] = a[i];
a[i] = min;
}
}
}
}
test
package 选择排序;
public class Test01 {
public static void main(String[] args) {
int a[] = {5,4,9,8,7,6,0,1,3,2};
SelectSort selectSort = new SelectSort();
selectSort.sort(a);
for(int i = 0;i<a.length;i++)
System.out.println(a[i]);
}
}
0
1
2
3
4
5
6
7
8
9