Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | pointer | :: | array(:) | |||
integer, | intent(in) | :: | left | |||
integer, | intent(in) | :: | right | |||
integer, | intent(in) | :: | pindex |
function partition(array, left, right, pindex) integer, pointer :: array(:) integer, intent(in) :: left, right, pindex integer :: partition integer :: pvalue, tmp, sindex, i pvalue = array(pindex) tmp = array(right) array(right) = pvalue array(pindex) = tmp sindex = left do i = left, right-1 if(array(i) .le. pvalue) then tmp = array(i) array(i) = array(sindex) array(sindex) = tmp sindex = sindex + 1 endif end do tmp = array(sindex) array(sindex) = array(right) array(right) = tmp partition = sindex end function partition