我正在做一个简单的StringList.sort,但是Delphi使用的QuickTort不是一个稳定的排序,这意味着它可能会改变具有相同键的记录的相对顺序.
我需要使用稳定的排序.对我来说,实现这个最简单的方法是什么?
Mike W的答案可能是最简单的方法,无需进行太多的代码更改.
谢谢,迈克.
我有以下数据结构,我想快速(明显)和稳定地对其进行排序。您认为哪种算法合适?
type
PSuperListItem = ^TSuperListItem;
TSuperListItem = record
SubItems : array of String;
Marked : Boolean;
ImageList : Byte;
ImageIndex: Integer;
Data : Pointer;
end;
TSuperListItems = array of PSuperListItem;
var
Items: TSuperListItems;
Run Code Online (Sandbox Code Playgroud)
我在这里发现只有插入、冒泡和合并排序算法是稳定的。我知道合并排序用于对链表进行排序。对于其他两种算法我一无所知,但我有一种奇怪的感觉,它们速度较慢。所以我不知道该使用哪种算法。