我有一个列表(我可以实现它作为任何类型的集合给出了一个简洁的解决方案)是这样的:排序列表,忽略每个第n个元素?
4,1,5,2,1,3,8,1,6,4,2,3
列表实际上是3个值的组,它的长度将永远是3的倍数。组的前2个值和组的第3个值之间没有关系。
我想对数组进行排序,使每个第三个值都留在原地。对于我给出的示例,结果将为:
1,1,5,1,2,3,2,4,6,4,8,3
索引为0,1,3,4,6和7的元素已排序。索引2,5和8的元素尚未排序。另一种表达方式是想象列表是x,x,y,x,x,y,x,x,y,x,x,y,而我只想排序xs。
我可以写一个算法,但不知道是否有简洁的方法来做到这一点?
这可能更适合代码审查(在你建议/写一个算法后)。 –
@flem我明白你的意思,但是SO的目的当然是学习和推进?编写算法是微不足道的。我的目的是寻求更简洁的方法。 – Simon