假设我们想要将拥有n个项目的阵列反过来。一个最简单作这件事的方式是这样:
function reverse(a[0..n])
allocate b[0..n]
for i from 0 to n
b[n - i] = a
return b
不幸地,这样需要O(n)的空间来建立b阵列,且配置内存通常是一件缓慢的运算。如果我们不再需要a,我们可使用这个原地算法,用它自己反转的内容来覆盖掉:
function reverse-in-place(a[0..n])
for i from 0 to floor(n/2)
swap(a, a[n-i])
在其他的例子,有数个排序算法会原地重新排放阵列内容成为排序过的顺序,包含:
Comb sort
Smoothsort
Stupid sort
快速排序通常被描述为一个原地算法,但是事实上并不是。大部份的实作需要O(log n)的空间来支持它的分治法(divide-and-conquer)递回。
大部份选择算法也是原地,虽然在找到最后结果的过程中,有某些相当地重新排列输入阵列,但却是固定大小的结果。