Можно ли узнать сколько первых N символов равно в двух массивах, быстрее чем такой функцией:
Код
function compare():integer;
var
j:integer;
begin
j:=0;
while(s1[j+1]=s2[j+1]) do j:=j+1;
compare:=j;
end;
Можно... Вот такой:
function compare:integer;
var
j: integer;
begin
j:=1;
while(s1[j]=s2[j]) do inc(j); { Это будет выполняться быстрее }
compare:=pred(j);
end;
Ээ... Я имел ввиду что-то кардинально другое.
Цитата
быстрее чем такой функцией:
нет ни слова о кардинальности изменений ;)
Цитата(virt @ 5.11.2005 22:41)
дихотомией.
А что это такое?
А, понял что это. Но как это применить к массиву.
ИМХО дихотомия не уместна.
И приведенный алгоритм наиболее быстр.
To: virt
А потом сравним быстродействие на нескольких специально подготовленных массивах, Ок?
если в массивах совпадений больше чем log2n то дихотомия будет быстрее ,иначе меделннее.
Все братцы, или коды с замером времени выполнения, или я тему закрываю как флеймовую
А может кто-нибудь написать как сравнивать массивы дихотомией?
не получится дихотомией ,я неверно понял условие.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.