简单选择排序

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();
	}
}

运行结果

多思考,多尝试。
原文地址:https://www.cnblogs.com/LynnMin/p/9528649.html