17.选择排序

1.思路分析

  • 第一轮,假定第一个元素为最小值,遍历数组直到找到比当前最小值小的元素,得到下标,重新确定最小值
  • 遍历到数组中最后一个元素,找到最小值和下标
  • 与第一个元素交换位置
  • 第二轮从第二个元素开始,重复上述步骤,需要进行数组长度-1轮,得到有序数组

2.代码实现

package com.yc.day04;

import java.util.Arrays;

public class SelectTestDemo {
    public static void main(String[] args) {
        int arr[] = {3,8,1,6};
        System.out.println("排序前:");
        System.out.println(Arrays.toString(arr));
        selectSort(arr);
        System.out.println("排序后:");
        System.out.println(Arrays.toString(arr));

    }
    public static void selectSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i;
            int min = arr[i];
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < min) {
                    min = arr[j];
                    minIndex = j;
                }
            }
            if(minIndex!=i){
                arr[minIndex] = arr[i];
                arr[i] = min;
                
            }
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容