我正在使用插入排序来对字串列表(EmailingListArray下面)进行排序。 EmailingListArray[1]
是一个包含名称的数组。 EmailingListArray[2]
包含相应的电子邮件。 我在排序EmailingListArray[1]
,当它内部发生变化时,它也会更改第二个数组,从而将它们排序在一起。 做事的一个尴尬的方式,我知道,但它的课程,我希望把插入排序在什么地方,试图得到一个额外的标记:L不能在Delphi插入排序算法中找到简单的错误
这里是我的代码
//quick check to make sure array contains correct values
for first := 0 to EmailingListArray[1].Count do
ShowMessage(EmailingListArray[1][first]);
//then sort
First := 0;
Last := EmailingListArray[1].Count;
for CurrentPointer := First +1 to Last-1 do
begin
CurrentValue := EmailingListArray[1][CurrentPointer];
CurrentValue2 := EmailingListArray[2][CurrentPointer];
Pointer := CurrentPointer + 1;
while ((EmailingListArray[1][Pointer] > CurrentValue) AND (Pointer > 0)) do
begin
EmailingListArray[1][Pointer+1] := EmailingListArray[1][Pointer];
EmailingListArray[2][Pointer+1] := EmailingListArray[2][Pointer];
pointer := Pointer -1;
end;
EmailingListArray[1][Pointer + 1] := CurrentValue;
EmailingListArray[2][Pointer + 1] := CurrentValue;
end;
//show message at the end for a check
ShowMessage('hello?');
消息“你好?”由于某种原因没有被显示:S。 该程序没有崩溃或任何东西,所以它应该至少显示“你好?”最后。 它不排序我的阵列。 我也不确定算法写得是否正确,我从教科书中找到了它。 任何帮助将不胜感激!
谢谢,现在它的排序很好,只有一个问题,它不是排序的第一个项目。想想那是你指的第3点,但不知道该怎么办:S – JamesB123 2012-03-23 20:35:46
@ JamesB123,看我的更新... – 2012-03-23 21:08:09
谢谢你!欣赏它:) – JamesB123 2012-03-23 23:51:26