SLy

永远年轻,永远憧憬,永远热爱。


  • 首页

  • 归档

  • 影集

  • 关于

  • 搜索
Thread Spring JAVA JVM 游记 计算机基础 MySQL 排序算法 PMP 情感 摄影 博客

选择排序

发表于 2020-12-06 | 分类于 排序算法 | 0 | 阅读次数 469
package com.sort.admin;

public class SelectSort {

    /**
     * 选择排序 - O(n^2)
     *
     * 循环N次,每次循环里面将第一个数跟后面所有数相比较,找出最小值放在数组最前面
     *
     * <p>
     * 0 ~ N-1  第一次从 0 ~ N-1 找出最小值
     * 1 ~ N-1  第二次从 1 ~ N-1 找出最小值
     * 2 ~ N-1  第三次从 2 ~ N-1 找出最小值
     * ~
     * N-2 ~ N-1 第 N-1 次从 N-2 ~ N-1 找出最小值
     *
     * 第一个for循环:控制循环次数
     * 第二个for循环:找出每次中最小值放在前面
     * </p>
     *
     * @param arr 需要排序的数组
     *
     */
    public static void sort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }

        // 从N个数选择最小的数放在前面,一共要选择N次,假设arr[0]是最小
        for (int i = 0; i < arr.length - 1; i++) {
            // 从N个数中找出最小值放在前面
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    swap(arr, i, j);
                }
            }
        }
    }

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

    public static void print(int[] arr) {
        System.out.println("arr -- >");
        for (int j : arr) {
            System.out.print(j + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        int[] arr = {3, 2, 7, 5, 1, 9, 9, 4, 6, 8};

        print(arr);
        sort(arr);
        print(arr);

    }
}


  • 本文作者: SLy
  • 本文链接: https://sly.plus/archives/selectsort
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明出处!
# Thread # Spring # JAVA # JVM # 游记 # 计算机基础 # MySQL # 排序算法 # PMP # 情感 # 摄影 # 博客
算法对数器
冒泡排序
  • 文章目录
  • 站点概览
SLy

SLy

永远年轻,永远憧憬,永远热爱。

37 日志
12 分类
12 标签
RSS
Github E-mail
Creative Commons
© 2020 — 2025 SLy