java算法之选择排序

来源:互联网 发布:python gui wxpython 编辑:程序博客网 时间:2024/05/29 08:25
public class SelectionSort {
    public static void main(String[] args) {
        int[] arr = { 12, 2, 4, 43, 5 };
        System.out.println("排序前:");
        printArray(arr);                  //调用输出方法
        selectionSort(arr);          //进行排序
        System.out.println("排序后:");
        printArray(arr);                //调用输出方法

    }
     //选择排序的实现
    public static void selectionSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {// 做第i趟排序
            int k = i;
            for (int j = k + 1; j < arr.length; j++) {// 选最小的记录
                if (arr[j] < arr[k]) {
                    k = j; // 记下目前找到的最小值所在的位置
                }
            }
            // 在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
            if (i != k) { // 交换a[i]和a[k]
                int temp = arr[i];
                arr[i] = arr[k];
                arr[k] = temp;
            }
        }
    }
    //输出方法
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i] + "]");
            } else {
                System.out.print(arr[i] + ",");
            }

        }
        System.out.println();
    }
}
原创粉丝点击