Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 对字符串列表排序:仅移动或交换项目_Delphi_Sorting_Pascal_Tstringlist - Fatal编程技术网

Delphi 对字符串列表排序:仅移动或交换项目

Delphi 对字符串列表排序:仅移动或交换项目,delphi,sorting,pascal,tstringlist,Delphi,Sorting,Pascal,Tstringlist,在Delphi/Pascal中,我想按字母顺序对TStringList进行排序。但为此,我只能采用以下两种方法: 移动:将字符串从一个索引位置移动到另一个索引位置,并根据需要移动其他字符串 交换:交换列表中由其索引位置标识的两个字符串 我怎么能这样做?我的想法是通过一个循环遍历所有项目,然后执行如下操作: lastFirstLetter:=CopyCurrentItem,1,1 转到下一项 currentFirstLetter:=CopyCurrentItem,1,1 如果ordcurrentF

在Delphi/Pascal中,我想按字母顺序对TStringList进行排序。但为此,我只能采用以下两种方法:

移动:将字符串从一个索引位置移动到另一个索引位置,并根据需要移动其他字符串

交换:交换列表中由其索引位置标识的两个字符串

我怎么能这样做?我的想法是通过一个循环遍历所有项目,然后执行如下操作:

lastFirstLetter:=CopyCurrentItem,1,1 转到下一项 currentFirstLetter:=CopyCurrentItem,1,1 如果ordcurrentFirstLetter使用这两种方法对StringList排序的最快方法是什么?顺便说一下,我不能使用sort方法和sorted属性。

移动/交换方法就是您所需要的。然而,你有很多算法可供选择!通过谷歌快速搜索动画比较,查看本网站:


我认为所有这些算法都只使用了“move”,除了heap和只使用“exchange”的快速排序之外,move/exchange方法就是您所需要的。然而,你有很多算法可供选择!通过谷歌快速搜索动画比较,查看本网站:


我认为所有这些算法都只使用了“移动”,除了堆和只使用“交换”的快速排序之外,您给出了两种方法:1交换和2交换

还有第三种方法:

3保留一个指向字符串的指针列表,并对指针进行排序

此方法将保留所有字符串的位置,并且可能会更快


请参见问题:和巴里·凯利接受的答案以及其他答案。

您给出了两种方法:1交换和2交换

还有第三种方法:

3保留一个指向字符串的指针列表,并对指针进行排序

此方法将保留所有字符串的位置,并且可能会更快


查看问题:和巴里·凯利的公认答案以及其他答案。

标记为家庭作业听起来很像,因为它会影响你得到的任何答案。考虑到这样一个事实,即你应该为自己的教化制定出实际的解决方案。祝你好运。我在学校里既没有计算机科学,也不学计算机科学。这只是我的爱好。但现在我必须接受你把我的问题当作家庭作业…我为这个错误道歉。谢谢你的澄清…删除:-没问题,谢谢你的快速更正:标记为作业听起来像是因为它会影响你得到的任何答案。考虑到这样一个事实,即你应该为自己的教化制定出实际的解决方案。祝你好运。我在学校里既没有计算机科学,也不学计算机科学。这只是我的爱好。但现在我必须接受你把我的问题当作家庭作业…我为这个错误道歉。感谢您的澄清…删除:-没问题,谢谢您的快速更正:非常感谢!也许每个程序员都知道这个网站,但我不知道:这个网站很棒!非常感谢你!也许每个程序员都知道这个网站,但我不知道:这个网站很棒!