No Image

Методом половинного деления в последовательности чисел 061

СОДЕРЖАНИЕ
2 373 просмотров
10 марта 2020

Содержание урока:

4.3. Поиск информации
4.2. Кодирование информации САМОЕ ГЛАВНОЕ
Вопросы и задания

4.3. Поиск информации

Неоценима роль компьютера в организации важнейшей задачи обработки информации — поиска информации, необходимой человеку для решения стоящей перед ним задачи.

Вспомните, как часто и какую информацию приходится искать вам, членам вашей семьи, вашим друзьям и знакомым. Приведите примеры.

Задача поиска обычно формулируется следующим образом. Имеется некоторое хранилище информации — информационный массив (телефонный справочник, словарь, расписание поездов, диск с файлами и др.). Требуется найти в нём нужную информацию, удовлетворяющую определённым условиям поиска (телефон данной организации, перевод данного слова на английский язык, время отправления данного поезда, файл с рефератом). При этом, как правило, необходимо сократить время поиска, которое зависит от способа организации набора данных и используемого алгоритма поиска.

Алгоритм поиска, в свою очередь, зависит от способа организации информации.

Если данные никак не организованы, то мы имеем дело с неструктурированным набором данных. Для осуществления поиска в таком наборе данных применяется метод последовательного перебора: все элементы, начиная с первого, просматриваются подряд. Поиск завершается в двух случаях:

1) искомый элемент найден, при этом может быть просмотрена как часть имеющегося набора данных, так и весь набор, если искомый элемент оказался последним в наборе;
2) просмотрены все элементы имеющегося набора данных, но искомого элемента среди них не оказалось.

Длительность поиска методом последовательного перебора определяется как N/2, где N — размер набора данных. Действительно, искомый элемент может оказаться первым среди просматриваемых, и в этом случае длительность поиска равна 1. Если искомый элемент окажется последним или его не окажется вообще, то длительность поиска будет равна N. Если провести поиск последовательным перебором достаточно много раз, то окажется, что в среднем на поиск требуемого элемента уходит N/2 просмотров.

Читайте также:  Драйвера для тачпада lenovo ideapad 320

Гораздо проще осуществлять поиск в структурированном наборе данных. Структурирование связано с внесением определённого порядка, определённой организации: расположения данных в алфавитном порядке, группировки по некоторым признакам и т. д. Если информация структурирована, то поиск осуществляется быстрее, можно построить оптимальный алгоритм.

Ранее мы уже рассматривали метод половинного деления. Он применяется к наборам данных, элементы которых упорядочены по неубыванию, т. е. каждый последующий элемент не меньше (больше или равен) предыдущего:

Искомый элемент сравнивается с центральным элементом последовательности, номер которого находится как [N/2] + 1. Квадратные скобки здесь обозначают, что от результата деления берётся только целая часть, а дробная часть отбрасывается.

Если искомый элемент больше центрального, то поиск продолжается в правой части последовательности. Если искомый элемент меньше центрального, то — в левой. Если значения искомого элемента и центрального совпадают, то поиск завершается.

Рассмотрим работу этого алгоритма поиска информации на примере.

Пример 6. В последовательности чисел

061 087 154 180 208 230 290 345 367 389 456 478 523 567 590 612

требуется найти число 180.

Просмотр 1. Работаем со всей последовательностью. Определяем центральный элемент (он подчёркнут):

061 087 154 180 208 230 290 345 367 389 456 478 523 567 590 612

Сравниваем искомый элемент с центральным.

По результатам сравнения отбрасываем правую часть последовательности.

Просмотр 2. Работаем с левой частью последовательности. Определяем центральный элемент (он подчёркнут):

061 087 154 180 208 230 290 345

Сравниваем искомый элемент с центральным.

По результатам сравнения отбрасываем правую часть последовательности .

Просмотр 3. Работаем с левой частью последовательности. Определяем центральный элемент (он подчёркнут):

061 087 154 180

Сравниваем искомый элемент с центральным.

По результатам сравнения отбрасываем левую часть последовательности.

Читайте также:  Intel qm67 поддерживаемые процессоры

Просмотр 4. Работаем с правой частью последовательности. Определяем центральный элемент (он подчёркнут):

180

Центральный элемент совпадает с искомым. Поиск завершён.

Как связаны длительность поиска методом половинного деления и длина исходной последовательности данных?

Cкачать материалы урока

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

у меня получилось, что первое число 954, второе 459, а третье 495. т.е. получился пример : 954-459=495

используется язык pascal

mas: array[1..7] of integer;

writeln(‘вводим значения в массив’);

for i: =1 to 7 do readln (mas[i]);

writeln(‘выводим значения из массива’);

for i: =7 downto 1 do writeln(mas[i]);

1. программную систему можно рассматривать как множество классов, позволяющих создавать, получать доступ и изменять коллекции данных, называемых объектами

3. вызов объектом компонента – основная базисная операция оо программирования

вместо х ставишь 2,значит у=2-1,у=1,х=у-2,2=4-2,у=х-у,у=2-у,тут у-любое,кроме 2 и более

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

программа на паскале:

program xxx; var a, b: real; begin writeln(‘введите количество миль’); readln(a); b: = a*1.6; writeln(‘кол-во киллометров – ‘,b)end.

xn-нечётное тогда, когда n-чётное

на каком языке нужна программа? пример на paskal: program zadacha; var massiv: array [1..15] of integer; i: byte; massiv2: array [1..15] of real; begin randomize; write(‘isxodnij massiv: ‘); for i: =1 to 15 do begin massiv: =random(41)-20; write(massiv,’ ‘); end; writeln; writeln(‘massiv posle preobrazovanij: ‘); for i: =1 to 15 do begin if massiv=0 then massiv2: =massiv else if massiv mod 5 = 0 then massiv2: =massiv*2 else begin massiv2: =massiv; massiv2: =massiv2/2; end; write(massiv2: 0: 1,’ ‘); end; readln; end.

var i, k : integer;

a : array [1..10] of real;

write(‘введите элементы массива а: ‘);

for i: =1 to 10 do

writeln(‘исходный массив а: ‘);

for i: =1 to 10 do

Читайте также:  Хонор 7а про забыл пароль что делать

for i: =1 to 9 do

if a[i] a[10] then k: =k+1;

writeln(‘элементов отдичных от последнего -‘, k);

Комментировать
2 373 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector