In computer science, the Josephus permutation is defined as follows.

Suppose n people are arranged in a circle and we are given a positive integer m < n. Beginning with an arbitrary first person, we proceed around the circle, removing every mth person. After each person is removed, counting continues around the circle until everyone is removed. The order which is removed is the (m,n)-Josephus permutation.

For example, the (3,7)-Josephus permutation is {3,6,2,7,5,1,4}.

The Josephus permutation algorithm can be written in O(n) time.