A[c]
X
X = A[c]
X < A[c]
X > A[c]
L = 0; R = N; // начальный отрезок while ( L < R - 1) { c = (L + R) / 2; // нашли середину if ( X < A[c] ) // сжатие отрезка R = c; else L = c; } if ( A[L] == X) cout << "A[" << L << "]=" << X; else cout << "Not found";
А
N
L = 0; R = N - 1; while ( R >= L) { c = (L + R) / 2; if ( X == A[c] ) { nX = c; break; } if (X < A[c]) R = mid - 1; if (X > A[c]) L = mid + 1; } if ( nX < 0) cout << "Not found"; else cout << "A[" << nX << "]=" << X;
Х
Not found
#include<iostream> using namespace std; main() { const int Nmax=1000; int A[Nmax], i, L, R, X, N, c; cin >> N; for (i=0; i<N; i++) cin >> A[i]; cin >> X; L = 0; R = N; while ( L < R-1 )
cout << "A["<< L << "]=" << X; else cout << "Not found"; }
1000 ms 256 Mb Правила оформления программ и список ошибок при автоматической проверке задач