1. 程式人生 > >排序演算法之選擇排序演算法【java實現】

排序演算法之選擇排序演算法【java實現】

簡介:遍歷陣列,每次選出最小的數與索引第一個進行交換,直到全部完成。

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