Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2012, 16:39   #1
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию Бинарный(Двоичный) поиск в одномерном массиве

Дана задача:

Цитата:
Написать программу, которая сортирует массив ПО УБЫВАНИЮ и ищет в нём элемент, равный X(с клавиатуры). Использовать двоичный поиск.
bonjovi вне форума Ответить с цитированием
Старый 31.01.2012, 17:10   #2
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию

Решил сам! Вот Может кому-нибудь понадобится!



Код:
Uses crt;

Var a:array [1..100] of integer;
i,j,k,X,left,right,b,r:integer;
f:boolean;

Begin
Write('Ïåðâîíà÷àëüíûé ìàññèâ: ');
For i:= 1 to 10 do
Read(a[i]);

     Repeat        //Ñîðòèðîâêà ïóçûðüêîì
     f:=true;
     For i:= 1 to 9 do
     If a[i]>a[i+1] then
          Begin
          f:=false;
          j:=a[i];
          a[i]:=a[i+1];
          a[i+1]:=j;
          end;
     Until f=true;
     
Write('Îòñîðòèðîâàííûé ìàññèâ: ');
For i:= 1 to 10 do
Write(a[i],' ');
Writeln;
Write('Èñêîìîå ÷èñëî - ');
Read(b);
left:=1; right:=10;
While left<=right do
     Begin
     k:=(left+right)div 2;
     If b=a[k] then Begin r:=k;left:=Right+1;end;
     If b<a[k] then Begin Right:=k-1;end;
     If b>a[k] then Begin Left:=k+1;end;
     end;
textcolor(blue);
If r=0 then writeln('Ýëåìåíòîâ íåò')
       else writeln('Íîìåð ýëåìåíòà - ',r);
end.
bonjovi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] Поиск минимума в одномерном массиве merch Паскаль, Turbo Pascal, PascalABC.NET 7 19.05.2011 02:35
Двоичный поиск в массиве структур vistaman1 Общие вопросы C/C++ 2 28.05.2010 17:30
Бинарный поиск в массиве Driver_09 Помощь студентам 8 28.05.2010 15:53
Двоичный поиск элемента в массиве (Си под DOS) Zid@ne Общие вопросы C/C++ 7 24.12.2008 18:07
Поиск в одномерном массиве Joxter Помощь студентам 6 13.12.2008 14:19