package demo;
/**
* 简单排序
* 时间复杂度O(n^2)
* 不稳定;
* @author Lynn
*
*/
public class SimpleSelectSort {
public static void main(String[] args) {
int[] arr = {10,7,2,4,8,6,1,9};
System.out.print("排序前:");
printArr(arr);
selectSort(arr);
System.out.print("排序后:");
printArr(arr);
}
/**
* 选择排序;
* @param arr
*/
private static void selectSort(int[] arr) {
int min = 0; //每一趟的最小值下标;
for(int i=0;i<arr.length;i++) {
min = i;
for(int j=i+1;j<arr.length;j++) {
if(arr[j]<arr[min]) {
min = j;
}
}
if(min!=i) {//需要交换;
int temp = arr[i];
arr[i]=arr[min];
arr[min]=temp;
}
}
}
/**
* 打印数组;
* @param arr
*/
private static void printArr(int[] arr) {
if(arr==null) {
return ;
}
for(int i =0;i<arr.length;i++) {
if(i!=arr.length-1) {
System.out.print(arr[i]+" ");
}else {
System.out.print(arr[i]);
}
}
System.out.println();
}
}
运行结果