/**
* @author @liugang
* 简单选择排序的思想
* 每遍历未排序部分一次都产生一个最小值,并将最小值移到数组的前端
*/
public class Simpleselectionsort {
private static int count = 0;
public static void printAll(int[] a) {
System.out.println("第" + (++count) + "次:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
public static void Sort(int[] data) {
for(int i=0;i<data.length;i++){
int minindex=i;
for(int j=i+1;j<data.length;j++){
//遍历未排序部分产生一个最小值
if(data[j]<data[minindex]){
//记录最小值的角标
minindex=j;
}
}
//将得到的最小值移到数组的前端
swap(data,minindex,i);
printAll(data);
}
}
public static void swap(int[] data, int minindex, int i) {
int temp =0;
temp =data[minindex];
data[minindex]=data[i];
data[i]=temp;
}
public static void main(String args[]) {
int[] data = new int[10];
for (int i = 0; i < data.length; i++) {
data[i] = (int) (Math.random() * 100);
}
System.out.println("排序之前:");
for (int i : data) {
System.out.print(i + " ");
}
System.out.println();
System.out.println("排序之后:");
Sort(data);
}