【Java】Java实现选择排序

简述

选择排序是一种简单的排序算法,其流程如下:
①找到数组中最小的一个元素
②将它和数组的第一个元素交换
③在剩下的元素中找到最小的元素
④将它和数组的第二个元素作交换
接下来如此往复,直到将整个数组都有序排列

例子

接下来我们看一个具体的例子:
使用选择排序将数组{S, O, R ,T ,E , X, A, M, P, L, E}有序排列
Tips:i表示排序次数 min表示最小的元素的下标
i min 0 1 2 3 4 5 6 7 8 9 10
      S O R T E X A M P L E
0  6  S O R T E X  M P L E
1  4   O R T  X S M P L E
2  10 A E R T O X S M P L 
3  9  A E E T O X S M P  R
4  7  A E E L O X S  P T R
5  7  A E E L M X S  P T R
6  8  A E E L M O S X  T R
7  10 A E E L M O P X S T 
8  8  A E E L M O P R  T X
9  9  A E E L M O P R S T X
10 10 A E E L M O P R S T X
———————————————————————————
排序完成:A E E L M O P R S T X

代码展示

package Sort;

import java.util.*;

public class Selection_Sort {
	//选择排序
	public static void sort(Comparable[] a) {
		int N = a.length;
		for (int i = 0; i < N; i++) {
			//将a[i]和a[i+1]到a[N]中的最小元素作交换
			int min = i;
			for (int j = i+1; j<N; j++) {
				if ( a[j].compareTo(a[min]) < 0 )//如果a[j]<a[min]
					min = j;
			}
			//将a[i]和a[min]调换位置
			Comparable t = a[i];
			a[i] = a[min];
			a[min] = t;
		}
	}
	
	//用于打印展示数组的方法
	private static void show(Comparable[] a) {
		for (int i = 0; i<a.length; i++)
			System.out.print(a[i]+" ");
		System.out.println();
	}
	
	//用例
	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		String in = reader.nextLine();
		String[] a = in.split(" ");
		sort(a);//调用上面的选择排序方法
		show(a);
	}
}

输入输出结果
输入:
22 33 44 11 66 55 88 77
输出:
11 22 33 44 55 66 77 88

排序成功!

发布了2 篇原创文章 · 获赞 0 · 访问量 21

猜你喜欢

转载自blog.csdn.net/weixin_45434953/article/details/104238633