これはアルゴリズムです: // Precondition: n > 0
l = -1;
r = n;
while (l+1 != r) {
m = (l+r)/2;
// I && m == (l+r)/2
if (a[m] <= x) {
l = m;
} else {
r = m;
}
}
// Pos
私はいくつかのHoareのロジックに取り組んでいます。私のアプローチが正しいかどうかは疑問です。 Iは、次のプログラムPを有する:それだけかかるので、それは{(N + 1)/ 2、S = Nの*}(ホア三重{N> = 0} Pを満たさなければならない s = 0
i = 1
while (i <= n) {
s = s + i
i = i + 1
}
を和)。今、私は