我有一个存储在远程数据库中的项目列表,可能是未分类的,我想对它们进行排序.数据库接受它们的命令:
move item1 before item2 move item3 after item2
因此,给出一个表单列表:
[1,3,2,7,6,0,4]
......我怎样才能得到一系列动作:
move 2 before 3 move 7 after 6 move 0 before 1 move 4 before 6
我假设对bubblesort算法的修改可行,但我特别寻找仍然是pythonic的最有效的实现,并且生成最少的移动命令.
更新:列表长度为1000-10000,所有项目都是唯一的 - 没有重复.只有极少数项目 - 1-10 - 在任何给定时间都会出错.时间是一个问题 - 它应该需要几秒钟,而不是几分钟 - 但它不一定非常快.
更新2:我还想将每个项目仅移动一次