選択ソートのアルゴリズム
・昇順ソートの場合
・乱雑な数値列のなかから最小値を見つける
・最小値をソート済みの配列によけておく
・残りの数値列から最小値を見つける
・最小値をソート済みの配列によける
・以下繰り返し
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 <iostream>
#include <iomanip>
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] << " ";
}
}