int64_sort Module Subroutine

private pure module subroutine int64_sort(array, reverse)

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(inout) :: array(0:)
logical, intent(in), optional :: reverse

Calls

proc~~int64_sort~~CallsGraph proc~int64_sort int64_sort interface~pic_optional pic_optional proc~int64_sort->interface~pic_optional proc~int64_decrease_sort int64_decrease_sort proc~int64_sort->proc~int64_decrease_sort proc~int64_increase_sort int64_increase_sort proc~int64_sort->proc~int64_increase_sort proc~optional_char optional_char interface~pic_optional->proc~optional_char proc~optional_dp optional_dp interface~pic_optional->proc~optional_dp proc~optional_int32 optional_int32 interface~pic_optional->proc~optional_int32 proc~optional_int64 optional_int64 interface~pic_optional->proc~optional_int64 proc~optional_logical optional_logical interface~pic_optional->proc~optional_logical proc~optional_sp optional_sp interface~pic_optional->proc~optional_sp none~introsort~7 introsort proc~int64_decrease_sort->none~introsort~7 none~introsort~2 introsort proc~int64_increase_sort->none~introsort~2 none~introsort~2->none~introsort~2 none~heap_sort~2 heap_sort none~introsort~2->none~heap_sort~2 none~insertion_sort~12 insertion_sort none~introsort~2->none~insertion_sort~12 none~partition~2 partition none~introsort~2->none~partition~2 none~introsort~7->none~introsort~7 none~heap_sort~7 heap_sort none~introsort~7->none~heap_sort~7 none~insertion_sort~17 insertion_sort none~introsort~7->none~insertion_sort~17 none~partition~7 partition none~introsort~7->none~partition~7 none~max_heapify~2 max_heapify none~heap_sort~2->none~max_heapify~2 none~max_heapify~7 max_heapify none~heap_sort~7->none~max_heapify~7 none~max_heapify~2->none~max_heapify~2 none~max_heapify~7->none~max_heapify~7

Source Code

      pure module subroutine int64_sort(array, reverse)
!! `int64_sort( array[, reverse] )` sorts the input `ARRAY` of type `integer(int64)`
!! using a hybrid sort based on the `introsort` of David Musser.
!! The algorithm is of order O(N Ln(N)) for all inputs.
!! Because it relies on `quicksort`, the coefficient of the O(N Ln(N))
!! behavior is small for random data compared to other sorting algorithms.
         implicit none
         integer(int64), intent(inout)         :: array(0:)
         logical, intent(in), optional :: reverse
      end subroutine int64_sort