我正在使用插入排序來對字串列表(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