简介:遍历数组,每次选出最小的数与索引第一个进行交换,直到全部完成。
package zhgyu.sort;
/**
/*选择排序算法
* @author zhgyu
*
*/
public class SelectionSort {
static final int SIZE = 10;
public static void selectionSort(int[] arr) {
int index,temp;
//从第一个数开始当索引
for(int i = 0; i < arr.length - 1; i++) {
index = i;
for(int j = i + 1; j < arr.length; j++) {
//如果后面的小于指定的索引数就替换他俩
if(arr[index] > arr[j]) {
temp = arr[index];
arr[index] = arr[j];
arr[j] = temp;
}
}
//排序一次的结果
System.out.println("第" + (i+1) + "次的排序结果:");
for(int k = 0; k < arr.length; k++) {
System.out.print(arr[k] + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[] arr = new int[SIZE];
int i;
for(i = 0; i < SIZE; i ++) {
arr[i] = (int)(Math.random()*(100 + 1));
}
//排序前的数组
for(i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
selectionSort(arr);
//输出数组arr
System.out.println("最终的排序结果:");
for(i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();
}
}