配列には、最初に値が増加し、次に値が減少する整数が含まれます。どの時点で数が減少し始めるかは不明です。2 番目の配列が昇順で並べ替えられるように、最初の配列の数値を別の配列にコピーする効率的なコードを記述します。
コードは以下のとおりです。
int _tmain(int argc, _TCHAR* argv[])
{
int a[10] = { 17, 24, 31, 39, 44, 49, 36, 29, 20, 18 };
int b[10];
int i = 0, j = 9, k = 0;
while (i <= j) {
if (a[i] < a[j]) {
b[k++] = a[i++];
}
else {
b[k++] = a[j--];
}
}
return 0;
}
ここでのループ不変条件は何ですか?