选择排序法

假定第一个元素是最大或最下的,然后在内层循环中去找到真正最大或最小的数,假定的与之交换,接着改变外层循环,元素往左移以为,继续内层循环。

点击查看代码
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));
    }
}

posted @ 2024-08-24 00:28  怂蛋本蛋  阅读(21)  评论(0)    收藏  举报