Вниз
Скачать: CL | DM;

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

 
Легионер   (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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
7-16752
div_123
2003-11-06 19:26
2004.02.06
поиск USB


3-16108
gs
2004-01-16 02:17
2004.02.06
почему в DBGRID есть FixedColor и нет FixedCols, и как можно их


1-16423
Erik
2004-01-22 11:06
2004.02.06
Зависание одной строчки кода при переполнении.


14-16739
Piter
2004-01-15 18:08
2004.02.06
Неудобство в проводнике


6-16568
Sil
2003-12-01 17:59
2004.02.06
Моделирование сетей




   Наверх