ord_sort 接口

公共接口 ord_sort

实现ORD_SORT算法的通用子例程接口,该算法是"Rust" sort算法(在slice.rs中找到)https://github.com/rust-lang/rust/blob/90eb44a5897c39e3dff9c7e48e3973671dcd9496/src/liballoc/slice.rs#L2159 ORD_SORT是混合稳定比较算法,它结合了归并排序插入排序。 (规范)

在对随机数据进行排序时,它始终处于最坏情况下为 O(N Ln(N)),在这种数据上比SORT慢约 25%,但在部分排序的数据上比SORT具有更好的性能,在均匀非递增或非递减数据上具有 O(N) 性能。


子例程

私有模块子例程 bitset_64_ord_sort(array, work, reverse)

bitset_64_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为type(bitset_64)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
type(bitset_64), intent(inout) :: array(0:)
type(bitset_64), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 bitset_large_ord_sort(array, work, reverse)

bitset_large_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为type(bitset_large)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
type(bitset_large), intent(inout) :: array(0:)
type(bitset_large), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 char_ord_sort(array, work, reverse)

char_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为character(len=*)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
character(len=*), intent(inout) :: array(0:)
character(len=len), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 dp_ord_sort(array, work, reverse)

dp_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为real(dp)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
real(kind=dp), intent(inout) :: array(0:)
real(kind=dp), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 int16_ord_sort(array, work, reverse)

int16_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为integer(int16)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
integer(kind=int16), intent(inout) :: array(0:)
integer(kind=int16), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 int32_ord_sort(array, work, reverse)

int32_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为integer(int32)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
integer(kind=int32), intent(inout) :: array(0:)
integer(kind=int32), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 int64_ord_sort(array, work, reverse)

int64_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为integer(int64)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
integer(kind=int64), intent(inout) :: array(0:)
integer(kind=int64), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 int8_ord_sort(array, work, reverse)

int8_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为integer(int8)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
integer(kind=int8), intent(inout) :: array(0:)
integer(kind=int8), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 sp_ord_sort(array, work, reverse)

sp_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为real(sp)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
real(kind=sp), intent(inout) :: array(0:)
real(kind=sp), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse

私有模块子例程 string_type_ord_sort(array, work, reverse)

string_type_ord_sort( array ) 使用基于"Rust" sort算法的混合排序方法对类型为type(string_type)的输入ARRAY进行排序,该算法在slice.rs中找到

参数

类型 意图可选 属性 名称
type(string_type), intent(inout) :: array(0:)
type(string_type), intent(out), optional :: work(0:)
logical, intent(in), optional :: reverse