ブリーフ
:選択は、ソートプロセスは次の通りである、単純なソートアルゴリズムである
最小の配列要素を見つける①
②配列の最初の要素を、その交換
要素の残りの部分で最小の要素を見つける③
④それと配列を以下のための第二スイッチング素子
アレイ全体が順序付けされるまで等々次と、
例
次は具体的な例を見て:
選択されたソートアレイ用いて{S、O、R、T 、E、X、A、M、P、Lを、E}は順序付けられた
ヒント:私は、ソートminは最小数を表し示しインデックス要素
I分。1 0 2 3 4 5 6 7 8 9 10
S O R&T LT M P L E E X-
0.6 X-S O R&T E LT M P L E 。1. 4
A O R T E X S M P L E
2 10 A E R T O X S M P L E
3 9 AとE T O X S M P L R
4 7 AとE L O X S M P T R
5 7 E E L M X S O P T R
6 8 A E L E M O S X P T R
7 10 E E L M O P X S T R
8 8 E E L M O P R S T X
9 9 A E E L M O P R S T X
10 10 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);
}
}
入力、出力
入力:
2,233,441,166,558,877
出力:
1,122,334,455,667,788