小滕的博客

小滕的技术点滴

java实现选择排序

1 month ago · 0 MIN READ

选择排序主要步骤:

  • 第一步,找出1-n个数中的最小(大)值与第一个元素交换
  • 第二步,找出2-n中的最小(打)值与第二个元素交换
  • 以此类推

具体代码:

package com.xiaoteng;

import java.util.Arrays;

public class SelectSort {

    public int[] sort(int[] a) {
        for (int i = 0; i < a.length; i++) {
            int min = a[i];
            int k = i;
            int j = i + 1;
            for (; j < a.length; j++) {
                if (min > a[j]) {
                    min = a[j];
                    k = j;
                }
            }
            // 判断查找出来的最小值是否小于min
            if (a[i] > min) {
                // 交换值
                int tmp = a[i];
                a[i] = min;
                a[k] = tmp;
            }

            // print
            System.out.println("本次选择排序之后结果:" + Arrays.toString(a));
        }
        return a;
    }

    public static void main(String[] args) {
        int[] arr = {1, 1, 2, 3, 18, 1, 999, 3, 19, 99, 29, 190, 120, 12};
        SelectSort selectSort = new SelectSort();
        System.out.println("排序结果:" + Arrays.toString(selectSort.sort(arr)));
    }
}

运行结果:

本次选择排序之后结果:[1, 1, 2, 3, 18, 1, 999, 3, 19, 99, 29, 190, 120, 12]
本次选择排序之后结果:[1, 1, 2, 3, 18, 1, 999, 3, 19, 99, 29, 190, 120, 12]
本次选择排序之后结果:[1, 1, 1, 3, 18, 2, 999, 3, 19, 99, 29, 190, 120, 12]
本次选择排序之后结果:[1, 1, 1, 2, 18, 3, 999, 3, 19, 99, 29, 190, 120, 12]
本次选择排序之后结果:[1, 1, 1, 2, 3, 18, 999, 3, 19, 99, 29, 190, 120, 12]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 999, 18, 19, 99, 29, 190, 120, 12]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 99, 29, 190, 120, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 99, 29, 190, 120, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 99, 29, 190, 120, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 29, 99, 190, 120, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 29, 99, 190, 120, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 29, 99, 120, 190, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 29, 99, 120, 190, 999]
本次选择排序之后结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 29, 99, 120, 190, 999]
排序结果:[1, 1, 1, 2, 3, 3, 12, 18, 19, 29, 99, 120, 190, 999]

···

xiao teng



备案号:皖ICP备14012032号-5