Мой Паскаль InsertsionSort массива строк не работает правильно - PullRequest
0 голосов
/ 29 мая 2019

Я видел несколько вопросов о сортировке вставок с помощью Паскаля. Поэтому я подумал, что попробую это с массивом строк.

Текстовые значения:

Advanced IF Syntax 
Advanced LOOP Syntax 
ALIGN 
BANNER / NOBANNER 
BLANK 
COLOR / COLOUR 
CONG_MEET_TIME 
DATE 
ENDPAGE 
EOL 
FIELD 
FONT 
HIGHLIGHT / NOHIGHLIGHT 
IF 
IMAGE 
INCLUDE 
LINESPACING 
LOOKUP_FIELD 
LOOP 
LOOP AS 
LOOP SQL 
PARAGRAPH / TEXT 
REQUIRES 
Script Command Syntax 
SEPARATOR 
TAB 
TAB SET 
TALK_THEME 

Вот код:

Procedure InsertionSort(aTopics : Array of String; size : Integer);
Var
    i, j : Integer;
    caption, topic_id : String;

Begin
    For i := 2 to size-1 do
    Begin
        topic_id := aTopics[i];
        caption := HndTopics.GetTopicCaption(aTopics[i]);

        j := i;
        While ((j > 1) AND (CompareText(HndTopics.GetTopicCaption(aTopics[j-1]), caption) > 0)) do
        Begin
            aTopics[j] := aTopics[j-1];
            j := j - 1;
        End;
        aTopics[j] := topic_id;
    End;
End;

Кажется, он работает на 99% правильно, с одним исключением. Перейдите к справочной документации и перейдите на вкладку Index . Щелкните элемент Синтаксис команды пользовательского сценария , и появится всплывающее окно:

Popup Window

Почему первый элемент TALK_THEME ? Это должно быть в конце списка, а не в начале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...