数据结构(排序)--选择排序

数据结构–选择排序
代码实现:

package cn.hncu;

import java.util.Scanner;
//选择排序
//优化版选择排序-----从时间复杂度和空间复杂度来进行优化(主要从交换的次数进行控制,做到只交换一次就能找到最小(大)的数)

public class chooseSort2 {
    public static void main(String[] args) {
        //
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[8]; // 给数组中的8个数字进行排序
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt(); // 依次给数组中的每个元素进行赋值操作
        }

        // 下面进行排序操作
        //注意一下两者(外层循环和内层)的比较趟数
        for (int i = 0; i < arr.length - 1; i++) { // 进行排序的趟数
            int k = i;
            for (int j = i + 1; j < arr.length; j++) { // 每趟排序进行的比较次数
                if (arr[k] > arr[j]) {
                    // 交换两个数的位置
                    k = j;
                    //swap(arr, i, j); // 每次把最小的那个数拿到前面,依次排序过去----优化版把这里优化了
                }
            }
            swap(arr,i,k);    //只进行一次交换
        }
        // 增强for循环输出排序后的数组
        for (int x : arr) {
            System.out.print(x + " ");
        }
    }

    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章