请问这种仅适用于键值为0到n-1的O(n)小众排序算法的正式名称是什么?
该算法的正式归类
你描述的这个排序算法是**循环排序(Cycle Sort)**的特化实现,仅适用于输入元素键值为0到n-1全排列的约束场景。
补充说明
- 标准循环排序的核心逻辑就是定位每个元素的最终位置,通过遍历循环链的方式逐个交换元素到正确位置,本身属于原地、不稳定的排序算法。你给出的实现利用了「键值直接等于元素最终下标」的强约束,省略了标准循环排序中统计小于当前键值的元素数量来计算最终位置的步骤,逻辑更精简。
- 部分技术资料中也会把这类针对值与下标直接映射场景的排序实现叫做「原地置换排序」,但它本质上还是循环排序的特例,没有独立的通用正式命名。
- 你提到的O(n)时间复杂度结论正确:每个元素最多被交换2次就会落到正确位置,已归位的元素不会被重复处理,总操作次数为线性规模。不过该复杂度仅在你给定的强约束下有效,通用场景下的标准循环排序时间复杂度为O(n²)。
内容的提问来源于stack exchange,提问作者Lykos
相关产品推荐
相关产品推荐

