Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ssortqx(3dxml) — FORTRAN 5.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

ISORTQX(3dxml)  —  Subroutines

Name

isortqx, ssortqx, dsortqx − Performs an indexed sort of a vector

FORMAT

{I,S,D}SORTQX ( order, n, x, incx, index )

Arguments

ordercharacter∗1
On entry, order specifies the operation to be performed as follows:

If order = ’A’ or ’a’, x is sorted in ascending  sequence

If order = ’D’ or ’d’, x is sorted in descending sequence
On exit, order is unchanged. 

ninteger∗4
On entry, the length of vector x. 
On exit, n is unchanged. 

xinteger∗4 | real∗4 | real∗8
On entry, a length n vector of data to be sorted. 
On exit, x is unchanged. 

incxinteger∗4
On entry, incx specifies the distance between elements of vector x. incx must be positive. 
On exit, incx is unchanged. 

indexinteger∗4
On entry, the content of index is ignored. 
On exit, index contains a permuted vector of indices which may be used to access data vector x in the sorted order specified by order. 

Description

The _SORTQX routines sort an indexed vector of data using the quicksort algorithm. Data is sorted in ascending order if order is ’A’ or ’a’ and in descending order if order is ’D’ or ’d’.  The quicksort algorithm is implemented by recursinq until the partition size is less than sixteen. At that point a modified insertion sort is used to sort the elements of the partition. 

Example

REAL∗4 DATA( 100 ),INDEX( 100 )
N = 100
CALL SSORTQX( ’A’,N,DATA,1,INDEX )
DO I=1,N
   PRINT ∗,DATA( INDEX(I) )
ENDDO

This FORTRAN code sorts a 100 element single real vector and prints its contents in sorted order.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026