Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.07.24;
Скачать: CL | DM;

Вниз

Удивительный QuickSort   Найти похожие ветки 

 
DayGaykin ©   (2015-10-11 19:15) [0]

Простой пример:

program Project1;
{$APPTYPE CONSOLE}

uses
 SysUtils, Classes;

function Cmp(List: TStringList; Index1, Index2: Integer): Integer;
begin
 Writeln("Compare: ", Index1, " ", Index2);
 Result := CompareStr(List[Index1], List[Index2]);
end;

var
 SL: TStringList;
begin
 try
   SL := TStringList.Create;
   try
     SL.Add("1");
     SL.Add("2");
     SL.Add("3");
     SL.Add("4");
     SL.CustomSort(Cmp);
     Writeln(SL.Text);
   finally
     SL.Free;
   end;
 except
   on E: Exception do
     Writeln(E.ClassName, ": ", E.Message);
 end;
 readln;
end.


Вывод:

Compare: 0 1
Compare: 1 1
Compare: 3 1
Compare: 2 1
Compare: 1 1
Compare: 2 2
Compare: 3 2
Compare: 2 2
1
2
3
4

Вопрос: зачем функция Cmp вызывается с одинаковыми значениями в параметрах Index1 и Index2?
Ведь заведомо известно, что во-первых, строка равна сама себе, во-вторых строку все-равно бессмысленно менять местами саму с собой.


 
картман ©   (2015-10-11 19:37) [1]

http://guildalfa.ru/alsha/node/10



Страницы: 1 вся ветка

Текущий архив: 2016.07.24;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.021 c
3-1308474984
Oleg_teacher
2011-06-19 13:16
2016.07.24
Связаные таблицы в БД


15-1439034187
xayam from work
2015-08-08 14:43
2016.07.24
Архивирование опять сломалось?


15-1445266190
картман
2015-10-19 17:49
2016.07.24
Центр Вселенной


15-1442179801
Юрий
2015-09-14 00:30
2016.07.24
С днем рождения ! 14 сентября 2015 понедельник


2-1415010352
Жук
2014-11-03 13:25
2016.07.24
2 штрих-сканнера в одном приложении