将一组整数数组按照从小到大排序,用简单排序的方法,先找到最小的,然后放在0位,然后后面的再找出最小的放在1位,依次下去排列。目前在学习java中,所以将代码的注释附上,也是自己的理解过程。
public void selectSort (int[] a) {
int n = a.length; //n是整个数组的长度
for (int k=0; k<n-1; k++) {//k从0开始一直到整个数组
int min = k;//先固定一个值,初始k取0,min就是0
for (int i=k+1; i<n; i++)//i从k+1开始,初始k=0,i=1
if (a[i]<a[min]) min = i;//如果第i位置的值小于K位置的值,则min取i位置的数,这时找出了最小的位置i
if (k!=min){//如果k位置不等于最小的位置
int temp = a[k];//设一个临时的变量,将K位置存在里面
a[k] = a[min];//k时从0开始遍历,这是就是把最小的数,存在第一个k的位置里
a[min] = temp;//原来最小的位置,与第一个数互换
}//end of if
}//end of for
}//从0开始遍历,数组长为n,但是位置上是从0开始,位置上最多是n-1,k<n-1,也就是遍历到倒数第二个,因为前面比较过大小,最后一个就是最大的。