100 個のブロックの配列があり、ここでは各ブロックに 1 つの色が含まれ、この色は文字 a、b、c、...、z の配列からランダムに取得されます。
例:アブデギフダ
次に、次の条件で並べ替えられた配列を返すプログラムを作成する必要があります。
- 次のスワップ順序に従う必要があります。
キャラクター最大スワップ
1
b 2
c 3
... ... ...
26
出力: aabddefhgi
私は次の方法を使用しました。
//ブロック数を返す
int getNoOfBlocks();
// 特定のブロックのアルファベットを返す
char getData(int);
//値を入れ替える
void swapBlock(int, int);
void ArrangeBlocks(void)
{
int サイズ = getNoOfBlocks();
for(int i = 0 ; i < size; i++)
{
int min = getData(i)-97;
int pos = 0;
int ascii = 0;
for(int j = i + 1; j < size; j++)
{
ascii = getData(j)-97;
if(min > ascii)
{
min = ascii;
pos = j;
}
}
swapBlock(i, pos+1);
}
}