sort 接口

public interface sort

基于 David Musser 的 introsort,实现 SORT 算法的通用子程序接口。(规范


子程序

private pure module subroutine bitset_64_sort(array, reverse)

bitset_64_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 type(bitset_64) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine bitset_large_sort(array, reverse)

bitset_large_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 type(bitset_large) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine char_sort(array, reverse)

char_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 character(len=*) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine dp_sort(array, reverse)

dp_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 real(dp) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine int16_sort(array, reverse)

int16_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 integer(int16) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine int32_sort(array, reverse)

int32_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 integer(int32) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine int64_sort(array, reverse)

int64_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 integer(int64) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine int8_sort(array, reverse)

int8_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 integer(int8) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine sp_sort(array, reverse)

sp_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 real(sp) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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

private pure module subroutine string_type_sort(array, reverse)

string_type_sort( array[, reverse] ) 使用基于 David Musser 的 introsort 的混合排序算法对类型为 type(string_type) 的输入 ARRAY 进行排序。该算法对所有输入均为 O(N Ln(N)) 阶。由于它依赖于 quicksort,因此与其他排序算法相比,对于随机数据的 O(N Ln(N)) 行为的系数很小。

参数

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