Помощь - Поиск - Пользователи - Календарь
Полная версия: Сравнение массивов.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Roma
Можно ли узнать сколько первых N символов равно в двух массивах, быстрее чем такой функцией:
Код

function compare():integer;
var
j:integer;
begin
j:=0;
while(s1[j+1]=s2[j+1]) do j:=j+1;
compare:=j;
end;
volvo
Можно... Вот такой:
function compare:integer;
var
  j: integer;
begin
  j:=1;
  while(s1[j]=s2[j]) do inc(j); { Это будет выполняться быстрее }
  compare:=pred(j);
end;
Roma
Ээ... Я имел ввиду что-то кардинально другое.
Altair
Цитата
быстрее чем такой функцией:

нет ни слова о кардинальности изменений ;)
virt
дихотомией.
roma
Цитата(virt @ 5.11.2005 22:41)
дихотомией.

А что это такое?
Guest
А, понял что это. Но как это применить к массиву.
Altair
ИМХО дихотомия не уместна.
И приведенный алгоритм наиболее быстр.
volvo
To: virt
А потом сравним быстродействие на нескольких специально подготовленных массивах, Ок?
virt
если в массивах совпадений больше чем log2n то дихотомия будет быстрее ,иначе меделннее.
Altair
Все братцы, или коды с замером времени выполнения, или я тему закрываю как флеймовую tong2.gif
Roma
А может кто-нибудь написать как сравнивать массивы дихотомией?
virt
не получится дихотомией ,я неверно понял условие.
Roma
Жаль...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.