Я использую сортировку вставки для сортировки строкового списка (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
@ JamesB123, см. Мое обновление ... –
Спасибо человеку! Ценить это :) – JamesB123