int32_sort Module Subroutine

private pure module subroutine int32_sort(array, reverse)

Arguments

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

Calls

proc~~int32_sort~~CallsGraph proc~int32_sort int32_sort interface~pic_optional pic_optional proc~int32_sort->interface~pic_optional proc~int32_decrease_sort int32_decrease_sort proc~int32_sort->proc~int32_decrease_sort proc~int32_increase_sort int32_increase_sort proc~int32_sort->proc~int32_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~6 introsort proc~int32_decrease_sort->none~introsort~6 none~introsort introsort proc~int32_increase_sort->none~introsort none~introsort->none~introsort none~heap_sort heap_sort none~introsort->none~heap_sort none~insertion_sort~11 insertion_sort none~introsort->none~insertion_sort~11 none~partition partition none~introsort->none~partition none~introsort~6->none~introsort~6 none~heap_sort~6 heap_sort none~introsort~6->none~heap_sort~6 none~insertion_sort~16 insertion_sort none~introsort~6->none~insertion_sort~16 none~partition~6 partition none~introsort~6->none~partition~6 none~max_heapify max_heapify none~heap_sort->none~max_heapify none~max_heapify~6 max_heapify none~heap_sort~6->none~max_heapify~6 none~max_heapify->none~max_heapify none~max_heapify~6->none~max_heapify~6

Source Code

      pure module subroutine int32_sort(array, reverse)
!! `int32_sort( array[, reverse] )` sorts the input `ARRAY` of type `integer(int32)`
!! 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(int32), intent(inout)         :: array(0:)
         logical, intent(in), optional :: reverse
      end subroutine int32_sort