java 选择排序

来源:互联网 发布:阳光房顶棚防水 知乎 编辑:程序博客网 时间:2024/06/10 22:18

java 选择排序

package order.selection.demo;//选择排序public class SelectionSort {    public static int[] arr = new int[] { 2, 4, 5, 1, 3, 8, 6, 9, 0, 7 };    public static void show(int[] arr, int iv, int k) {        // 查看结果        System.out.println();        for (int i : arr) {            if (iv == i) {                System.out.print(i + "i\t");            } else if (k == i) {                System.out.print(i + "k\t");            } else {                System.out.print(i + "\t");            }        }        System.out.println();    }    public static void main(String[] args) {        // 从大到小排序        int temp, k;        int sortCount = 0;// 遍历次数        int handleCount = 0;// 处理次数        for (int i = 0; i < arr.length - 1; i++) {            k = i;            for (int j = i + 1; j < arr.length; j++) {                if (arr[k] < arr[j]) {                    k = j;                }            }            if (k != i) {                temp = arr[i];                arr[i] = arr[k];                arr[k] = temp;                handleCount++;            }            // show(arr);            sortCount++;            show(arr, arr[i], arr[k]);        }        // 查看结果        for (int i : arr) {            System.out.print(i + "\t");        }        System.out.println();        System.out.println("遍历次数: " + sortCount);        System.out.println("操作次数: " + handleCount);    }    // 9i 4 5 1 3 8 6 2k 0 7    //    // 9 8i 5 1 3 4k 6 2 0 7    //    // 9 8 7i 1 3 4 6 2 0 5k    //    // 9 8 7 6i 3 4 1k 2 0 5    //    // 9 8 7 6 5i 4 1 2 0 3k    //    // 9 8 7 6 5 4i 1 2 0 3    //    // 9 8 7 6 5 4 3i 2 0 1k    //    // 9 8 7 6 5 4 3 2i 0 1    //    // 9 8 7 6 5 4 3 2 1i 0k    // 9 8 7 6 5 4 3 2 1 0    // 遍历次数: 9    // 操作次数: 7}
原创粉丝点击