您的位置 首页 java

java实现选择排序

简介

选择排序(Selection sort)是一种简单直观的 排序算法 。它的工作原理是:第一次从待排序的 数据元素 中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择 排序 是不稳定的排序方法。

逻辑梳理

我们将8, 6, 2, 3, 1, 5, 7, 4这组数作为例子,通过选择排序将这组数由小到大进行排序

1.先找到这组数中的最小值,然后将最小值与第一个位置进行交换,得到的结果为【1, 6, 2, 3, 8, 5, 7, 4】

2.从第二个数开始找到最小值与第二个数进行交换得到的结果为【1, 2, 6, 3, 8, 5, 7, 4】

3.从第三个数开始找到最小值与第三个数进行交换得到的结果为【1, 2, 3, 6, 8, 5, 7, 4】

4.从第四个数开始找到最小值与第四个数进行交换得到的结果为【1, 2, 3, 4, 8, 5, 7, 6】

5.从第五个数开始找到最小值与第五个数进行交换得到的结果为【1, 2, 3, 4, 5, 8, 7, 6】

6.从第六个数开始找到最小值与第六个数进行交换得到的结果为【1, 2, 3, 4, 5, 6, 7, 8】

7.从第七个数开始找到最小值与第七个数进行交换得到的结果为【1, 2, 3, 4, 5, 6, 7, 8】

8.剩下一个数就是最大值,不需要再次查找

选择排序动态图帮助理解

代码实现

 package com.zyp.sort;

import java.util.Arrays;

/**
 * 选择排序
 * @author zyp
 * @create 2022/1/21
 */public class SelectSort {
    public static void main(String[] args){
        //待排序的数组
        int[] array = new int[]{8,6,2,3,1,5,7,4};
        //需要array.length-1才能将数据排好序
        for(int i = 0;i<array.length-1;i++){
            //假设最小值的下标为i
            int minIndex = i;
            int min = array[i];
            for(int j = i+1;j<array.length;j++){
                if(min > array[j]){
                    minIndex = j;
                    min = array[j];
                }
            }
            
            //找到最小值,和当前的数进行替换(最小值不是当前位置的值)
            if(minIndex != i){
                array[minIndex] = array[i];
                array[i] = min;
            }
            System.out.print("第"+(i+1)+"次后:"+Arrays.toString(array));
            System.out.println();
        }
    }
}
  

代码结果展示:

结果展示

文章来源:智云一二三科技

文章标题:java实现选择排序

文章地址:https://www.zhihuclub.com/174299.shtml

关于作者: 智云科技

热门文章

网站地图