Java 选择排序,先看下面代码
private static int[] selectSort(int[] numbs) {
for (int i = 0; i < numbs.length; i++) {
int minIndex = i;// 将当前下标定义为最小值下标
for (int j = i+1; j <numbs.length; j++) {
if (numbs[minIndex] > numbs[j]) {
minIndex = j;
}
}
//如果不是同一个,就交换
if (i != minIndex) {
int temp = numbs[i];
numbs[i] = numbs[minIndex];
numbs[minIndex] = temp;
}
}
return numbs;
}
测试代码:
public static void main(String[] a) {
int[] numbs = {1, 3, 4, 2, 9, 0,1};
System.out.print("This is : " + Arrays.toString(selectSort(numbs)));
}
运行结果:
运行结果
基本思想
1,每一次都从待排序中找出最小的元素,放到已排序后面,直到全部记录排序完毕。
比如:上面例子中,i=0的时候,循环到 j =5 该条件成立,此时的值为:0,比 1小,故进入下面的 if 语句中,执行交换操作!!以此类推,循环执行完 i = 1 ,2, 3.....(每次都是找出最小的元素,放到已经排序完成的序列后)
网友评论