选择排序法
假定第一个元素是最大或最下的,然后在内层循环中去找到真正最大或最小的数,假定的与之交换,接着改变外层循环,元素往左移以为,继续内层循环。
点击查看代码
package Sort;
import java.util.Arrays;
//升序的话:假定第一个是最小值,然后依次后面的每一个数比较,若矛盾则交换下标,继续比较,找出最小的值的下标,内城循环结束后与之交换
//降序
public class 选择 {
public static void main(String[] args) {
int b[] ={2,5,6,1,3,8,7,9,0};
//升序
for(int i = 0; i < b.length-1; i++){//i<b.length也行,因为不满足内层循环的条件不执行
int minsize = i;
for(int j = i+1; j < b.length; j++){
if(b[j] < b[minsize]){
minsize = j;
}
}
int temp = b[i];
b[i] = b[minsize];
b[minsize] = temp;
}
System.out.println(Arrays.toString(b));
//降序
int c[] = {0, 2, 5, 1,4,6,10};
for(int i = 0; i < c.length-1; i++){
int maxsize = i;
for(int j = i+1; j < c.length; j++){
if(c[j] > c[maxsize]){
maxsize = j;
}
}
int temp = c[i];
c[i] = c[maxsize];
c[maxsize] = temp;
}
System.out.println(Arrays.toString(c));
}
}
浙公网安备 33010602011771号