選択ソート

選択ソートのアルゴリズム
・昇順ソートの場合
・乱雑な数値列のなかから最小値を見つける
・最小値をソート済みの配列によけておく
・残りの数値列から最小値を見つける
・最小値をソート済みの配列によける
・以下繰り返し

 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] << " ";	
	}
 
}