Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

Скорость :(   Найти похожие ветки 

 
Легионер   (2004-01-28 17:13) [0]

Как можно увеличить быстроту работы слудющего кода?
type Myarray=array[1..26000]of integer;
Pmyarray=^Myarray;
var a,b:Pmyarray;
x,x1:integer;
i,indexA,indexB,k,count:longint;
begin
new(a);
new(b);
Readln(indexA);
count:=1;
for i:=1 to IndexA do
begin

if i=1 then
begin
readln(a^[1]);
end
else
begin
readln(indexB);
if count>25000 then
begin
if b^[count-25000]<>IndexB then
begin
inc(count);
b^[count-25000]:=IndexB;
end;
end
else
begin
if a^[count]<>IndexB then
begin
inc(count);
a^[count]:=IndexB;
end;
end;
end;
end;
readln(indexB);
for i:=1 to IndexB do
begin
readln(x);
for k:=1 to Count do
begin
if k>25000 then x1:=b^[k-25000]
else x1:=a^[k];
if x+x1>10000 then break;
if X1+x=10000 then
begin
Writeln("YES");
Halt;
end;
end;
end;
Writeln("NO");
dispose(a);
dispose(b);
end.


 
Sandman25   (2004-01-28 17:15) [1]

Например, вытащить проверку из цикла:

for i:=1 to IndexA do
begin
if i=1 then


 
Sandman25   (2004-01-28 17:17) [2]

Вместо halt лучше goto на первый dispose.


 
Sandman25   (2004-01-28 17:20) [3]

Это не та задача, где один массив упорядочен по возрастанию, а другой по убыванию? Если так, то нужно избавляться от вложенного for - заменять его на while.


 
Легионер   (2004-01-28 20:24) [4]

А разве скорость от этого увеличится?
Поменял все то, что Вы сказали. стало чуть быстрее работать:) Может еще что можно ?


 
Юрий Зотов   (2004-01-28 20:34) [5]

А зачем здесь косвенная адресация? Почему бы не объявить A и B, как сами массивы, а не указатели на них. Тоже должно ускорить.


 
Легионер   (2004-01-28 21:01) [6]

Не получится, т.к. все это в Паскале!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.027 c
1-16480
Кирилл Б.
2004-01-24 12:13
2004.02.06
Иконка в трэе не удаляется Windows


1-16333
Sir Alex
2004-01-25 02:19
2004.02.06
Немодальная форма и Shortcuts в главной форме


3-16089
AMogil
2004-01-10 11:49
2004.02.06
Убрать пустую строку в DBGrid


14-16738
Akvilon
2004-01-12 22:19
2004.02.06
На чем написана Delphi?


14-16639
MV
2004-01-14 15:54
2004.02.06
Все равно Делфай не брошу!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский