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


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili