Oracle Solaris Studio 12.4 Man Pages

Exit Print View

Updated: January 2015
 
 

qsort(3F)

Name

qsort , qsort64 - 快速排序

Synopsis

integer*4 len, isize
integer*8 len8, isize8
external compar
integer*2 compar
subroutine qsort (array, len, isize, compar)
subroutine qsort64(array,len8, isize8, compar)

Description

一维 array(数组)包含要排序的元素。len(或 len8)是数组中的元素数目。isize(或 isize8)是元素的大小,通常为:

  • 4(针对 integer)和 real(或者用于 qsort64 的 4_8)

  • 8(针对 double precision)或 complex(或者用于 qsort64 的 8_8)

  • 16(针对 double complex)(或者用于 qsort64 的 16_8)

  • 或者是 character 数组的字符元素长度(字节)。

compar 是用户提供的 INTEGER*2 函数的名称(该函数确定排序顺序)。调用此函数时使用两个参数,它们是 array 的元素。该函数必须返回:

  • 负值(当 arg1 被视为在 arg2 之前时)

  • 零(当 arg1 等效于 arg2 时)

  • 正值(当 arg1 被视为在 arg2 之后时)。

在返回时,将对 array 的元素排序。

在 64 位环境中使用 qsort64;在这种环境中,数组(或字符数组元素)的大小超过了 2 GB,只能使用 INTEGER*8 值指定。

Notes

在使用 qsort64 时,请确保将元素大小 isize8 和数组长度 len8 指定为 INTEGER*8 数据。使用 Fortran 90 语法指定 INTEGER*8 常量,例如,如下代码中的 8_8

integer*8 LENARRAY, ARRAY(large_number)
integer*2 ORDER
external ORDER
...
call qsort64(ARRAY, LENARRAY, 8_8, ORDER)

Files

libfui.a

See also

qsort(3C)