这个选择排序很简单: 原理是:
在比较第i个数字的时候,从n-i个中选择一个最小的数,与第i个进行比较。
一个常规方法,一个调优尝试
public void getMix(int[] str ){
int length = str.length;
int temp;
for (int i = 0; i < length; i++){
// 此处功能是 找到每一个小于i的数字然后交换。
/**
* 调优方式:
* 比较出一个最小的只做标记不做交换,
* 直到循环到最后才将标记位和i位交换
* 节省了内存开销。
*/
/*for(int j = i; j < length ; j++){
//常规的循环。
if(str[j] < str[i]) {
temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}*/
/**
* 调优方式 标记类型
*/
int log = i;
for(int j = i; j < length ; j++){
if(str[j] < str[log])
log = j;
}
if(log != i){
temp = str[log];
str[log] = str[i];
str[i] = temp;
}
}
/**
* 输出结果
*/
for (int k = 0; k < str.length ;k++){
System.out.println(" : " + str[k]);
}
}