РRОСЕDURЕ QUIСКЕRSОRТ(А,J);
СОММЕNТ МАССИВ А[1:J] УПОРЯДОЧИВАЕТСЯ ПО ВОЗРАСТАНИЮ;
VАLUЕ J; АRRАУ А; INТЕGЕR J;
ВЕGIN
INТЕGЕR I,К,М,Р,Q;RЕАL Т,Х;
INТЕGЕR АRRАУ LТ,UТ[1:LN(АВS(J)+2)/0.693];
I:=М:=1;
N: IF J-I>1 ТНЕN ВЕGIN
Р:=(I+J)÷2;
Т:=А[Р];
А[Р]:=А[I];
Q:=J;
FОR К:=I+1 SТЕР 1 UNТIL Q DО ВЕGIN
IF А[К]>Т ТНЕN ВЕGIN
FОR Q:=Q SТЕР -1 UNТIL К DО ВЕGIN
IF А[Q]<Т ТНЕN ВЕGIN
Х:=А[К];
А[К]:=А[Q];
А[Q]:=Х;
Q:=Q-1;
GО ТО L
ЕND
ЕND;
Q:=К-1;
GО ТО S
ЕND;
L:ЕND ;
S:А[I]:=А[Q];
А[Q]:=Т;
IF 2×Q>I+J ТНЕN ВЕGIN
LТ[М]:=I;
UТ[М]:=Q-1;
I:=Q+1
ЕND ЕLSЕ ВЕGIN
LТ[М]:=Q+1;
UТ[М]:=J;
J:=Q-1
ЕND;
М:=М+1;
GО ТО N
ЕND ;
IF I≥J ТНЕN GО ТО R;
IF А[I]>А[J] ТНЕN ВЕGIN
Х:=А[I];
А[I]:=А[J];
А[J]:=Х
ЕND ;
R:М:=М-1;
IF М>0 ТНЕN ВЕGIN
I:=LТ[М];
J:=UТ[М];
GО ТО N
ЕND
ЕND QUIСКЕRSОRТ
no subject
Date: 2009-11-04 01:13 pm (UTC)no subject
Date: 2009-11-04 03:01 pm (UTC)В корень смотришь - я именно о них.
no subject
Date: 2009-11-04 01:33 pm (UTC)no subject
Date: 2009-11-04 03:01 pm (UTC)no subject
Date: 2009-11-04 05:13 pm (UTC)(как я это понял - интересная история; алгоритм вычислял многомерный интеграл одной функции внутри сферы; я решил проверить, что будет, если в 4хмерном пространстве уменьшить маленький радиус сферы вдвое - интеграл должен уменьшиться приблизительно в 16 раз, но он уменьшился в иное число раз)
no subject
Date: 2009-11-04 06:06 pm (UTC)Ради прикола надо мне будет перекодировать всю библиотеку и выложить куда-нибудь. Например, что это такое, я не понимаю:
РRОСЕDURЕ UNR(Х,А,V); INТЕGЕR Х; RЕАL А,V; ВЕGIN INТЕGЕR I; V:=0; FОR I:=1 SТЕР 1 UNТIL 5 DО ВЕGIN Х:=3125×Х; Х:=Х-ЕNТIЕR(Х/67108864)×67108864; А:=Х/33554432-1; V:=V+А ЕND; V:=V×0.774596; V:=0.97×V×(1+0.01×V×V) ЕNDno subject
Date: 2009-11-04 06:37 pm (UTC)no subject
Date: 2009-11-04 07:04 pm (UTC)Еще меня смутило то, что при начальном X == 0 датчик не работает, но зато одну операцию сэкономили!
no subject
Date: 2009-11-06 10:27 am (UTC)value m,sigma,n; real m,sigma; integer n;
begin real sum; integer i;
sum:=0;
for i:=1 step 1 until n do sum:=sum+random;
normrand:=m+sigma*sum*sqrt(3/n);
end;
хихикс...
Ну ты напомнил... :)
no subject
Date: 2009-11-04 09:49 pm (UTC)На моё недоумение объяснил, что f2c генерирует код так: из фортрановского A(i) = B(i) получается сишное a[i-1] = b[i-1];
переписывать библиотеки заново на C дорого, а фортрановые быстрее
no subject
Date: 2009-11-07 01:32 am (UTC)no subject
Date: 2009-11-05 05:16 am (UTC)no subject
Date: 2009-11-05 05:31 am (UTC)