(Selection-sort)是一种简单的排序算法。首先在未排序的序列中找到最小(大)的元素,将他与序列第一位置的指进行交换,然后在剩下的序列中再找出最小值,放在序列第二位置,依次类推,直到所有的元素排序完毕。
package com.ldy.arithmetic.sort;
import java.util.Arrays;
public class SelectionSort {
public static void main(String[] args) {
String[] strings={"f","c","a","i","b","d","e","g","h","d"};
int[] ints={19,9,2,3,6,5,4,7,5,11};
// SelectionSortForString(strings);
SelectionSortForInt(ints);
System.out.println(Arrays.toString(ints));
}
private static void SelectionSortForInt(int[] ints) {
int times=1;
for (int cycle=0;cycle<ints.length;cycle++){
int minIndex =cycle;
for(int index=cycle+1;index<ints.length;index++){
if(ints[index]<ints[minIndex]){
minIndex=index;
}
}
int temp=ints[cycle];
ints[cycle]=ints[minIndex];
ints[minIndex]=temp;
System.out.println("第"+times+"次排序的结果:"+Arrays.toString(ints));
times++;
}
}
private static void SelectionSortForString(String[] strings) {
int times=1;
for (int cycle=0;cycle<strings.length;cycle++){
int minIndex =cycle;
for(int index=cycle+1;index<strings.length;index++){
if(strings[index].compareTo(strings[minIndex])<0){
minIndex=index;
}
}
String temp=strings[cycle];
strings[cycle]=strings[minIndex];
strings[minIndex]=temp;
System.out.println("第"+times+"次排序的结果:"+Arrays.toString(strings));
times++;
}
}
}
两次的排序结果:每一次遍历都选出最小值放在最前面。