在Delphi / Pascal中我想按字母顺序对TStringList进行排序。但为此目的,我只能使用以下两种方法:
移动:将字符串从一个索引位置移动到另一个索引位置,并根据需要移动其他字符串。
交换:交换列表中的两个字符串,由其索引位置标识。
我怎么能这样做?我有想法通过一个循环来完成所有项目:
使用这两种方法对StringList进行排序的最快方法是什么?顺便说一句,我不能使用sort方法和sorted属性。
答案 0 :(得分:3)
您提供两种方法:(1)交换和(2)交换。
还有第三种方法:
(3)保持TList指向你的字符串并对指针进行排序。
此方法会将所有字符串保留在原来的位置,并且可以更快。
请参阅问题:Best Way To Sort An Array In Delphi和Barry Kelly接受的答案以及其他答案。
答案 1 :(得分:1)
移动/交换方法就是您所需要的。但是你有很多算法可供选择!请查看此网站(通过快速Google搜索)进行动画比较:http://www.sorting-algorithms.com/
我认为所有这些算法只使用'move',除了堆和仅使用'exchange'的快速搜索