====== 選択ソート ====== 選択ソートのアルゴリズム ・昇順ソートの場合 ・乱雑な数値列のなかから最小値を見つける ・最小値をソート済みの配列によけておく ・残りの数値列から最小値を見つける ・最小値をソート済みの配列によける ・以下繰り返し 0 1 2 3 4 5 6 7 8 9 69 15 89 68 58 67 96 49 9 27 <-乱雑な数値列 n[10] XX XX XX XX XX XX XX XX XX XX <-並べ替え用作業領域 w[10] w[0] = n[8] 0 1 2 3 4 5 6 7 8 9 XX 69 15 89 68 58 67 96 49 27 <-乱雑な数値列 n[10] 9 XX XX XX XX XX XX XX XX XX <-並べ替え用作業領域 w[10] w[1] = n[2] 0 1 2 3 4 5 6 7 8 9 XX XX 69 89 68 58 67 96 49 27 <-乱雑な数値列 n[10] 9 15 XX XX XX XX XX XX XX XX <-並べ替え用作業領域 w[10] w[2] = n[9] 0 1 2 3 4 5 6 7 8 9 XX XX XX 69 89 68 58 67 96 49 <-乱雑な数値列 n[10] 9 15 27 XX XX XX XX XX XX XX <-並べ替え用作業領域 w[10] w[3] = n[9] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX 69 89 68 58 67 96 <-乱雑な数値列 n[10] 9 15 27 49 XX XX XX XX XX XX <-並べ替え用作業領域 w[10] w[4] = n[7] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX XX 69 89 68 67 96 <-乱雑な数値列 n[10] 9 15 27 49 58 XX XX XX XX XX <-並べ替え用作業領域 w[10] w[5] = n[8] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX XX XX 69 89 68 96 <-乱雑な数値列 n[10] 9 15 27 49 58 67 XX XX XX XX <-並べ替え用作業領域 w[10] w[6] = n[8] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX XX XX XX 69 89 96 <-乱雑な数値列 n[10] 9 15 27 49 58 67 68 XX XX XX <-並べ替え用作業領域 w[10] w[7] = n[7] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX XX XX XX XX 89 96 <-乱雑な数値列 n[10] 9 15 27 49 58 67 68 69 XX XX <-並べ替え用作業領域 w[10] w[8] = n[8] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX XX XX XX XX XX 96 <-乱雑な数値列 n[10] 9 15 27 49 58 67 68 69 89 XX <-並べ替え用作業領域 w[10] w[9] = n[9] 0 1 2 3 4 5 6 7 8 9 XX XX XX XX XX XX XX XX XX XX <-乱雑な数値列 n[10] 9 15 27 49 58 67 68 69 89 96 <-並べ替え用作業領域 w[10] #include #include using std::cin; using std::cout; using std::endl; int main() { //2桁の整数 int n[10] ={69, 15, 89, 68, 58, 67, 96, 49, 9, 27}; int w[10]; //n[10]から最小値を探してそのindexを得る for(int j=0;j<10;j++){ int min = 999; int idx=0; for(int i=0; i<10; i++) { if(min > n[i]) { min = n[i]; idx = i; } } w[j] = n[idx]; n[idx] = 999; //検索一回したよまーく //cout << min << " "; } for(int i=0;i<10;i++) { cout << w[i] << " "; } }