Форум: "Начинающим";
Текущий архив: 2018.03.04;
Скачать: [xml.tar.bz2];
ВнизСортировка TList Найти похожие ветки
← →
Макака (2016-02-28 18:08) [0]Есть TList<integer>. TList.Sort сортирует по возрастанию, как сделать наоборот?
← →
DVM © (2016-02-28 19:00) [1]Функцию сортировки свою сделать
← →
Макака (2016-02-28 19:27) [2]DVM, это и ежу понятно. В ТСтрингЛист всё просто было через TCustomSort (как хочешь так и сортируешь) а тут весь инет обрыл, везде в ТЛист объекты хранят не числа, хотя по сути в обоих случаях хранятся указатели на объекты. Короче мне очень сложно пока понять что к чему.
← →
Макака (2016-02-28 19:29) [3]var List:TList<integer>;
function ListSort(Item1, Item2: Pointer): Integer;
begin
end;
begin
List:=TList<integer>.Create;
List.Add(1);
List.Add(4);
List.Add(3);
List.Sort(ListSort);
end;
← →
Юрий Зотов © (2016-02-28 22:18) [4]Используем тот факт, что Integer и Pointer занимают одинаковый размер памяти. То есть, Pointer можно трактовать как Integer, через приведение типа.
function CompareItemsAsInteger(Item1, Item2: Pointer): Integer;
var
i1, i2: Integer;
begin
i1 := Integer(Item1);
i2 := Integer(Item2);
if i1 > i2 then
result := 1
else
if i1 < i2 then
result := -1
else
result := 0
end;
← →
Макака (2016-02-28 22:23) [5]Я сделал так
function ListSort(Item1, Item2: Pointer): Integer;
begin
if integer(item1)>=integer(item2) then result:=0 else result:=1;
end;
Похоже что одно и тоже.
У меня ошибка выходит "не актуальные параметры" в местеList.Sort(ListSort);
С этого момента я начал шустрить по инету, но так и не понял из-за чего.
← →
Юрий Зотов © (2016-02-28 22:31) [6]http://docwiki.embarcadero.com/CodeExamples/XE8/en/Generics_Collections_TList_%28Delphi%29
← →
Юрий Зотов © (2016-02-28 22:43) [7]Эх, давно я с Delphi дела не имел - но похоже, что все проще: сначала List.Sort. затем List.Reverse.
← →
Макака (2016-02-28 22:48) [8]Юрий Зотов, только что из твоего источника нашёл, спасибо!
А бинарный поиск в списке отсортированном по убыванию не робит?
← →
Юрий Зотов © (2016-02-28 22:48) [9]Вот тут все хорошо описано:
http://www.tdelphiblog.com/2009/07/2-generics-delphi-2009-win32-2.html
← →
DVM © (2016-02-29 17:39) [10]
> Макака (28.02.16 22:48) [8]
> Юрий Зотов, только что из твоего источника нашёл, спасибо!
>
> А бинарный поиск в списке отсортированном по убыванию не
> робит?
А какой практический смысл от списка отсортированного в обратном порядке?
К списку же всегда можно обратиться задом-наперед.
← →
DVM © (2016-02-29 18:05) [11]
> Макака (28.02.16 22:48) [8]
Если бинарный поиск реализован грамотно, то он тоже опирается на функцию сравнения. И ему абсолютно фиолетово, в прямом или обратном порядке отсортирован список.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.03.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c