Advertisement
nubpun

binarySearch

Dec 4th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.65 KB | None | 0 0
  1. const SIZE = 10000;
  2. var
  3. ar:array[1..SIZE] of integer;
  4. Function binSearch(x:integer): integer;
  5. Var
  6. l, r, m:integer;
  7. success:boolean;
  8. Begin
  9.   success:=false;
  10.   l:=1;
  11.   r:=SIZE;
  12.   while l <= r do
  13.   begin
  14.     m:=l + (r - l) div 2;
  15.     if ar[m] = x then begin
  16.       success:=true;
  17.       break;
  18.     end;
  19.     if ar[m] > x then begin
  20.       r:= m - 1;
  21.     end
  22.     else
  23.       l:=m + 1;
  24.   end;
  25.   if success = true then
  26.     binSearch:= m
  27.   else
  28.     binSearch:=-1;
  29. End;
  30.  
  31. begin
  32.   for var i:=1 to SIZE do
  33.     ar[i]:= i;
  34.   for var i:=1 to SIZE do begin
  35.       if (binSearch(i) = -1) or (ar[binSearch(i)] <> i) then
  36.         writeln(i);
  37.   end
  38. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement