sp_sort Module Subroutine

private pure module subroutine sp_sort(array, reverse)

Arguments

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

Calls

proc~~sp_sort~~CallsGraph proc~sp_sort sp_sort interface~pic_optional pic_optional proc~sp_sort->interface~pic_optional proc~sp_decrease_sort sp_decrease_sort proc~sp_sort->proc~sp_decrease_sort proc~sp_increase_sort sp_increase_sort proc~sp_sort->proc~sp_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~8 introsort proc~sp_decrease_sort->none~introsort~8 none~introsort~3 introsort proc~sp_increase_sort->none~introsort~3 none~introsort~3->none~introsort~3 none~heap_sort~3 heap_sort none~introsort~3->none~heap_sort~3 none~insertion_sort~13 insertion_sort none~introsort~3->none~insertion_sort~13 none~partition~3 partition none~introsort~3->none~partition~3 none~introsort~8->none~introsort~8 none~heap_sort~8 heap_sort none~introsort~8->none~heap_sort~8 none~insertion_sort~18 insertion_sort none~introsort~8->none~insertion_sort~18 none~partition~8 partition none~introsort~8->none~partition~8 none~max_heapify~3 max_heapify none~heap_sort~3->none~max_heapify~3 none~max_heapify~8 max_heapify none~heap_sort~8->none~max_heapify~8 none~max_heapify~3->none~max_heapify~3 none~max_heapify~8->none~max_heapify~8

Source Code

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