Вниз
Скачать: 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.017 c
1-16368
SniZ
2004-01-24 00:27
2004.02.06
Как создать маленькое приложение с формой?


7-16773
ps
2003-11-14 16:42
2004.02.06
Вопрос по девайсам установленным в системе


6-16548
stud
2003-12-03 17:01
2004.02.06
сети,сети.....


1-16339
Сережа
2004-01-24 20:59
2004.02.06
Регистрация класса


3-16182
Максим
2004-01-13 08:22
2004.02.06
Создание базы




   Наверх