笔记个人整理
/** 选择排序
* 原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
则将其与第一位交换,使最大数置于第一位
第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
则将其与第二位交换,使最大数置于第二位
依次类推.........................................
第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
则将其与第 i位交换,使最大数置于第 i位
------------------------可是按照以上的写法,有点麻烦,所以把原理倒了过来
*/
public void selectSort(){
int min=0;
long tmp=0;
for (int i = 0; i < elems-1; i++) {
min=i;
//不需和自身比较
for (int j = i+1; j < elems; j++) {
if (arr[j]<arr[min]) {
min=j;
}
}
tmp = arr[i];
arr[i] = arr[min];
arr[min] = tmp;
}
}