Java实现选择排序

简介: Java实现选择排序

基本思想及举例说明

选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序。

在实现上,我们通常是先确定第i小的数所在的位置,然后,将其与第i个数进行交换。

下面,以对 3 2 4 1 进行选择排序说明排序过程,使用min_index 记录当前最小的数所在的位置。

第1轮 排序过程 (寻找第1小的数所在的位置)

3 2 4 1(最初, min_index=1)

3 2 4 1(3 > 2, 所以min_index=2)

3 2 4 1(2 < 4, 所以 min_index=2)

3 2 4 1(2 > 1, 所以 min_index=4, 这时候确定了第1小的数在位置4)

1 2 4 3 (第1轮结果,将3和1交换,也就是位置1和位置4交换)

第2轮 排序过程 (寻找第2小的数所在的位置)

1 2 4 3(第1轮结果, min_index=2,只需要从位置2开始寻找)

1 2 4 3(4 > 2, 所以min_index=2)

1 2 4 3(3 > 2, 所以 min_index=2)

1 2 4 3(第2轮结果,因为min_index位置刚好在第2个位置,无需交换)

第3轮 排序过程 (寻找第3小的数所在的位置)

1 2 4 3(第2轮结果, min_index=3,只需要从位置2开始寻找)

1 2 4 3(4 > 3, 所以min_index=4)

1 2 3 4(第3轮结果,将3和4交换,也就是位置4和位置3交换)

至此,排序完毕。

源码

package com;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    Scanner s=new Scanner (System.in);
    int n=s.nextInt();
    int [] a=new int [n];
    for(int i=0;i<n;i++)
      a[i]=(int)(Math.random()*100);
    selectsort(a);
    System.out.println(Arrays.toString(a));
  }
  public static void selectsort (int[] a) {
    for(int i=0;i<a.length;i++) {
      int min=a[i];
      int minIndex=i;
      for(int j=i+1;j<a.length;j++) {
        if(a[j]<min) {
          min=a[j];
          minIndex=j;
        }
      }
      a[minIndex]=a[i];
      a[i]=min;
    }
  }
}

以上代码仅供参考


目录
相关文章
|
4月前
|
搜索推荐 Java 索引
|
6月前
|
Java
选择排序(java)
选择排序(java)
|
机器学习/深度学习 搜索推荐 算法
面试时常常考察的java排序算法--选择排序、冒泡排序、插入排序
面试时常常考察的java排序算法--选择排序、冒泡排序、插入排序
|
算法 搜索推荐 Java
java基础算法系列(三)(选择排序的简单优化讲解)
java基础算法系列(三)(选择排序的简单优化讲解)
|
7月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--选择排序
数据结构与算法(Java篇)笔记--选择排序
|
7月前
|
搜索推荐 Java
JAVA排序之选择排序 带图和code
JAVA排序之选择排序 带图和code
37 0
JAVA排序之选择排序 带图和code
|
7月前
|
搜索推荐 Java
Java实现选择排序算法
Java实现选择排序算法
37 0
|
7月前
|
搜索推荐 Java 程序员
Java数组全套深入探究——进阶知识阶段1、选择排序
Java数组全套深入探究——进阶知识阶段1、选择排序
53 0
|
Java
java数据结构60:选择排序
选择排序输出的是对n个元素的原序列的一个重排<a0,a1,a2,...,an-1>;,使得a0<= a1<= a2<= .......<= an-1
70 0
|
搜索推荐 算法 Java
【算法】选择排序的原理与Java实现
选择排序(Selection Sort)是一种简单直观的排序算法,每次从待排序的数组中选择最小(或最大)的元素,并将其放到已排序部分的末尾。选择排序的基本思想是不断选择剩余元素中的最小(或最大)值,依次放置到已排序部分的末尾,直到所有元素都被放置到正确的位置。
84 0