Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить, сколько чисел, равных X, находится в массиве. Пример: Массив: 1 4 7 3 9 2 4 5 2 После сортировки: 1 2 2 3 4 4 5 7 ...

Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить, сколько чисел, равных X, находится в массиве. Пример: Массив: 1 4 7 3 9 2 4 5 2 После сортировки: 1 2 2 3 4 4 5 7 9 Введите число X: 4 Число 4 встречается 2 раз(а). Пример: Массив: 1 4 7 3 9 2 4 5 2 После сортировки: 1 2 2 3 4 4 5 7 9 Введите число X: 14 Число 14 не встречается.
Гость
Ответ(ы) на вопрос:
Гость
:D  Ну го Ничего если  на паскале напишу ?  uses crt; var  a:array[1..50] of integer ;i,j,n,x,t,k:integer;b:string; begin read(n);      for i:= 1 to n do      begin      a[i]:=random(15);      write(a[i],' ');      end;      writeln;      for i:= 1 to n-1 do      for j:= i+1 to n do      if a[i]> a[j] then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end;      for i:= 1 to n do      write(a[i],' ');      writeln;      read(x);      for i:= 1 to n do       if a[i] = x then k:=k+1;       str(k,b);      n:=length(b);       if k in  [11..19] then write (k,' раз') else       if k = 0 then  write('число ',x,' не встречается ')else      case b[n] of       '0','1','5','6','7','8','9': write (k,' раз');       '3','4','2': write (k,' раза') ;      end; end.
Гость
Добавьте двоичный поиск для поиска элемента массива, равного x.  { двоичный поиск } { l - левая граница для поиска } { r - правая граница для поиска } l:=1; r:=n; while true do  begin    i:=(l+r) div 2;    if a[i]=x then break;    if a[i]>x then r:=i    else  if a[l]
Не нашли ответ?
Ответить на вопрос
Похожие вопросы