Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2sem / LR5

.m
Скачиваний:
1
Добавлен:
25.03.2024
Размер:
1.14 Кб
Скачать
clc
clear
global cm
N=10;
cm=0;
nd=2;
L=1; %Позиция наименьшего значения
H=N; %Позиция наибольшего значения
KEY=N/2; %искомое значение в векторе
S=[1 1 1 1 1 1 1 1 1 1]; %Вводим единичный вектор
for I=1:N
S(I)=I+nd; %Заполняем единичный вектор
end
function[M] = binary_search(S, KEY, L, H); %Задание функции
global cm
cm=cm+1;
M=fix((L+H)/2); %номер центрального элемента между L и H элементамм
if L>H %массив не отсортирован
M=-1;
return
end
if (S(M)==KEY) %значение найдено
return
end
if (S(M)>KEY)
M=binary_search(S, KEY, L, M-1); %ограничение поиска
elseif (S(M)<KEY)
M=binary_search(S, KEY, M+1, H); %ограничение поиска
end
end


tic
M=binary_search(S, KEY, L,H); %Вызов функции
toc
S(M) %Значение ключа в массиве
M %Положение значения ключа
cm %Итерации

Соседние файлы в папке 2sem