JAVA実現ソートアルゴリズムの選択ソート


ソートアルゴリズム(昇順を例に)を選択し、配列の最初の数をソートされていないすべての数と順次比較します.
例えば、最初の数はa[i]であり、比較のたびにa[i]未満の下付き文字が記録される.最小の数をa[i]の位置に置く.
その交換動作回数は0と(n−1)の間であり、付与動作回数は0と3(n−1)の間である.
交換回数はバブルソートが少なく、選択ソートはバブルソートが速い.
JAVAコードは以下の通りです.

public class XuanZe {

	public void sort(int[] arr){
		int index;//            
		int temp;
		System.out.println("   :");
		for(int i = 0; i < arr.length; i++ ){
			System.out.printf("%3s", arr[i]);      
		}
		System.out.println();
		System.out.println("----------------------------------");
		for(int i = 0; i < arr.length; i++){
			index = i;
			for(int j = i + 1; j < arr.length; j++){
				if(arr[j] < arr[index]){ //       
					index = j; 
				}
			}
		    //         
		    temp = arr[i];
			arr[i] = arr[index];
			arr[index] = temp;
			
			System.out.println(" "+(i+1)+"    :");
			for(int k = 0; k < arr.length; k++){
				System.out.printf("%3s", arr[k]); 
			}
			System.out.println();
		}
		System.out.println();
		System.out.println("----------------------------------");
		System.out.println("     :");
		for(int i = 0; i < arr.length; i++){
			System.out.printf("%3s", arr[i]); 
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] a = {10, 32, 1, 9, 5,3, 7, 12, 0,4,4, 3};
		XuanZe xz = new XuanZe();
		xz.sort(a);
	}

}