07/07/11 00:11:20
ついでだからばぶるな挿入な。さて、新しい値を p とする
d[numofdata + 1] := p;
i := 1;
while p < d[i] do i := i + 1;
これで i は p>=d[i]を満たす最小の値になった(もうソートしてあるから)
p がたまたま d の最大値だったら、これ以上処理は必要ない。そうでなければ、
d の i 番目に p をそうぬうする。
for j := numofdata downto succ(i) do d[succ(j)] := d[j];
d[i] := p;
でそうぬう官僚。実は、p がたまたま d の最大値だった場合もこれを走らせていい。
しかし、課題は二分探索であった。あんま奇麗じゃないがfpcで試してはある。