ソートの選択ソート

1257 ワード

ソートを選択する基本的な考え方は,ソートされた記録シーケンスに対してn−1パスの処理を行い,iパス目の処理はL[i..n]の最小者をL[i]と位置を交換することである.これにより,iパス処理後,前のi個の記録の位置が正しくなった.
void choiceSort(int[] unsorted) {
    for(int i =0;i < unsorted.length; i++){
        int min = i;
        for(int j = i+1; j <unsorted.length; j++){
            if(unsorted[min] > unsorted[j]){
                min = j;
            }
        }
        if (i != min) {  
            int tmp = unsorted[min];  
            unsorted[min] = a[i];  
            unsorted[i] = tmp;  
        }  
    }
}

この方法の複雑度はO(n^2)である.