Я использую сортировку вставкой для сортировки списка строк (EmailingListArray ниже).
EmailingListArray[1]
- это массив, содержащий имена.
EmailingListArray[2]
содержит соответствующие электронные письма.
Я сортирую EmailingListArray[1]
, и когда что-то меняется внутри него, это также меняет второй массив, поэтому они сортируются вместе.
Я знаю, что это неудобный способ делать вещи, но это для курсовой работы, и я хотел поместить где-то сортировку вставок, чтобы попытаться получить дополнительную оценку: L
Вот мой код
//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.
Программа не вылетает или что-то в этом роде, поэтому на самом деле она должна показывать "привет?" в конце.
Это не сортирует мои массивы тоже.
Также я не уверен, что алгоритм написан правильно, я взял его из нашего учебника.
Любая помощь будет высоко ценится!