Вопрос задан 10.04.2018 в 15:53. Предмет Информатика. Спрашивает Потанцев Роман.

Заполнить массив случайными числами и отсортировать его. Ввести число 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 не встречается.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ванин Илья.

: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.

0 0
Отвечает Садомцев Артём.

Добавьте двоичный поиск для поиска элемента массива, равного 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]<x then l:=i;
end;
k:=0;
for i:=l to r do
 if a[i]=x then k:=k+1;
{ конец двоичного поиска }

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос