在计算机科学中，一个原地算法（in-place algorithm）基本上不需要额外辅助的资料结构,然而,允许少量额外的辅助变数来转换资料的算法。当算法执行时，输入的资料通常会被要输出的部份覆盖掉。不是原地算法有时候称为非原地（not-in-place）或不得其所（out-of-place）。一个算法有时候会错误地被称为原地算法，只因为它用它的输出资料会覆盖掉它的输入资料。事实上这条件既不充分（在快速排序案例中所展示的）也非必要；输出资料的空间可能是固定的，或如果以输出为串流资料而言，也甚至是可能无法被