Быстрый циклический массив
Я должен реализовать циклический массив. Использование памяти не имеет значения, мне просто нужно как можно меньше заниматься арифметикой. Мой лучший способ сделать это:
- Создать массив
T[L]
- Создать массив
S[L+2]
заполнить
S
как этоS[0] = L-1 S[L+1] = 0 S[i+1] = i, i=0,1...L-1
затем
T[x] = T[S[x+1]) T[-1] = T[S[0]] = T[L-1] // last element T[L] = T[S[L+1]] = T[0] // first element
Например:
T[-1] = T[S[1]] = T[L-1] // last element T[L] = T[S[L+1]] = T[0] // first element