擬似言語だとしっくりこないから、
C言語にて書きなおしてみる。(かなりいい加減だけど)
#incllude <stdio.h>
main()
{
int A[n], X[n], Y[n]; //nは定数として扱う
int m, p;
int max = 9999;
int j = 1;
while(j < N)
{
k = 0;
while( k <= (N – j * 2) )
{
m = 1;
while( m <= j )
{
X[m] = A[k + m];
Y[m] = A[k + m + j];
m = m + 1;
}
X[j + 1] = max;
Y[j + 1] = max;
// (a)
m = 1;
while(m <= j *2)
{
if( X[p] < Y[q] )
{
// (b)
}else{
// (c)
}
m = m + 1;
}
k = k + j *2;
}
j = j * 2;
}
}
……なんだこれ。
整数型qの宣言がないのにいきなり28行目で使われてるし汗
意味わからねえヽ(;´Д`)ノ
むぅ…とりあえず……
(a)は
p ← 1
q ← 1
だにゃー
(b)と(c)は……むぅ
添え字はk + mかなー
ちっちゃいほうが配列にはいるからー
(b)にはA(k + m) ← X(p)
(c)にはA(k + m) ← Y(q)
がはいるな。
んで、(b),(c)にはp++,q++がはいるはず。
ふむ、じゃあ、
(a)
p ← 1
q ← 1
(b)
A(k + m) ← X(p)
p ← p + 1
(c)
A(k + m) ← Y(q)
q ← q + 1
かな。
どれどれ……正解♪
とまあ……こんな感じでいいのかな(ナニ
すっげえ適当だなあ……