Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: 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 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
6-16544
V.exeR
2003-12-02 06:57
2004.02.06
И еще... Как узнать размер и время создания файла


9-16015
Ricks
2003-06-13 15:24
2004.02.06
Smooth Shading


1-16493
Anton.
2004-01-27 16:01
2004.02.06
Классы


1-16250
Petrovitch
2004-01-26 15:27
2004.02.06
Корректировка поля в DBGRID (SQL) как???


7-16767
Sadya
2003-11-12 17:03
2004.02.06
Как узнать сколько % проца ест один процесс