正如其他海报所回答的那样,你可能想要一个稳定的分类.稳定的排序算法包括
如果我选择,我可能会选择合并排序,因为它具有最佳的复杂性.插入排序可以在小列表上击败它.我记得有一个案例,冒泡排序并不可怕,但我忘了它是什么.
但是,值得注意的是,担心稳定性会排除像quicksort这样的算法,这可能是您的未指定语言在其排序函数中使用的算法.
无论你使用什么语言,它的排序实现应该能够采用一个函数来比较两个项目并确定哪个是"更大".所以你真正需要做的就是编写一个函数
这只是使用语言附带的任何排序算法按字典顺序对项目进行排序,并且假设如果它们具有相同的索引,则可以认为两个项目相等,从而消除了对稳定性的需求.
该函数遵循的精确协议因语言而异.