Sorting and Ranking
Insert Position
Ranking Against Sorted Values
A sorted table can tell where a new value belongs by counting values below it.
Program
Play the program to change the score and see its insertion position.
insert_position.f90
program insert_position_demo
implicit none
integer :: sorted(4)
integer :: score
integer :: i
integer :: position
sorted = [10, 20, 30, 40]
score =
position = 1
do i = 1, 4
if (score > sorted(i)) position = i + 1
end do
print '(I0, 1X, I0)', score, position
end program insert_position_demo
program insert_position_demo
implicit none
integer :: sorted(4)
integer :: score
integer :: i
integer :: position
sorted = [10, 20, 30, 40]
score =
position = 1
do i = 1, 4
if (score > sorted(i)) position = i + 1
end do
print '(I0, 1X, I0)', score, position
end program insert_position_demo
program insert_position_demo
implicit none
integer :: sorted(4)
integer :: score
integer :: i
integer :: position
sorted = [10, 20, 30, 40]
score =
position = 1
do i = 1, 4
if (score > sorted(i)) position = i + 1
end do
print '(I0, 1X, I0)', score, position
end program insert_position_demo
sorted table
The existing values are already ordered from low to high.
insertion position
`position` advances once for every sorted value below `score`.
rank idea
The final position is a rank-like answer for where the score belongs.