算法

排序算法:选择排序_简单选择排序

2018-02-27  本文已影响5人  ADark0915

基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

    private void selectSort(int[] nums) {
        for (int i = 0; i < nums.length; i++) {
            int min = i;
            // 每次选择出最小值的索引
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[min]>=nums[j]){
                    min = j;
                }
            }

            // 如果有最小值,就跟历史的最小值交换
            if (min != i){
                swap(nums, i, min);
            }
        }
    }

    /**
     * @param nums
     * @param a    索引
     * @param b    索引
     */
    private void swap(int[] nums, int a, int b) {
        nums[a] = nums[a] + nums[b];
        nums[b] = nums[a] - nums[b];
        nums[a] = nums[a] - nums[b];
    }
上一篇 下一篇

猜你喜欢

热点阅读