Текст подпрограммы и версий ( Фортран )
avz3r.zip  avz3d.zip  avz5r.zip  avz5d.zip 
Тексты тестовых примеров ( Фортран )
tavz3r.zip  tavz3d.zip  tavz5r.zip  tavz5d.zip 
Текст подпрограммы и версий ( Си )
avz3r_c.zip  avz3d_c.zip  avz5r_c.zip  avz5d_c.zip 
Тексты тестовых примеров ( Си )
tavz3r_c.zip  tavz3d_c.zip  tavz5r_c.zip  tavz5d_c.zip 
Текст подпрограммы и версий ( Паскаль )
avz3r_p.zip  avz3e_p.zip  avz5r_p.zip  avz5e_p.zip 
Тексты тестовых примеров ( Паскаль )
tavz3r_p.zip  tavz3e_p.zip  tavz5r_p.zip  tavz5e_p.zip 

Подпрограмма:  AVZ3R (версия AVZ5R)

Назначение

Упорядочивание вектора по возрастанию абсолютных значений его компонент.

Математическое описание

АVZ3R производит упорядочивание  N последовательно расположенных компонент вектора  А по возрастанию абсолютных значений.

R.С.Singleton, Аlgorithm 347, an efficient algorithm for sorting with minimal storage, CACM, 12, 3, 1969.

Использование

    SUBROUTINE  AVZ3R (A, N) 

Параметры

A - вещественный одномерный массив размера по крайней мере  N, содержащий компоненты исходного вектора  A; по окончании работы подпрограммы содержит абсолютные значения компонент в возрастающем порядке;
N - заданное число упорядочиваемых компонент (тип: целый).

Версии

AVZ3D - упорядочивание вектора, заданного с удвоенной точностью, по возрастанию абсолютных значений его компонент.
AVZ5R - упорядочивание вектора по возрастанию значений его компонент.
AVZ5D - упорядочивание вектора, заданного с удвоенной точностью, по возрастанию значений его компонент.

Вызываемые подпрограммы: нет

Замечания по использованию

 

В подпрограмах АVZ3D и AVZ5D параметр  А должен иметь тип DОUВLЕ РRЕСISIОN.

По окончании работы подпрограмм АVZ5R и АVZ5D массив  А содержит компоненты исходного вектора в возрастающем порядке.

Пример использования

      DIMENSION  A(10), B(10)
      DATA  A /- 1., 1.5, - 2., 2.5, - 3., 3.5, - 4., 4.5, - 5., 5.5/
      DATA  B /- 1., 1.5, - 2., 2.5, - 3., 3.5, - 4., 4.5, - 5., 5.5/
      N = 10
      CALL  AVZ3R (A, N)
      CALL  AVZ5R (B, N)
      
Результаты:

       А = (1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5) ;

       B = (- 5., - 4., - 3., - 2., - 1., 1.5, 2.5, 3.5, 4.5, 5.5) .