Сортировка в TStringList?

LiYing
Дата: 04.12.2007 15:14:44
В динамически создаваемый стринглист загружаются не сортированные данные (могут быть десятки и сотни тысяч): FList.AddObject(WPName, wp);
Необходимо отсортировать этот список. Как это сделать быстрее (и правильнее):
1) при создании листа делать Sorted := true и только потом загружать данные;
2) или уже после загрузки вызывать метод Sort?
Johnmen
Дата: 04.12.2007 15:46:26
А попробовать никак?
Dimitry Sibiryakov
Дата: 04.12.2007 15:47:09

LiYing
быстрее (и правильнее):

Второй метод должен быть быстрее.

Posted via ActualForum NNTP Server 1.4

LiYing
Дата: 04.12.2007 16:02:16
Dimitry Sibiryakov

Второй метод должен быть быстрее.

Возможно. Однако он не устанавливает св-во Sorted в true. Посему при добавлении новых элементов списка, его придется заново отсортировать, что займет опять какое-то время.
А если изначально создан список с Sorted = true и буду добавлятся новые элементы - даст ли это выигрыш по времени?
Bulygin Roman
Дата: 04.12.2007 16:32:49
LiYing
А если изначально создан список с Sorted = true и буду добавлятся новые элементы - даст ли это выигрыш по времени?

поробуй, узнаешь. За тебя тут это делать вряд ли кто будет.
LiYing
Дата: 04.12.2007 16:55:28
Bulygin Roman
поробуй, узнаешь

Это всенепременно!
Меня интересует в чем принципиальное различие, если оно есть, между этими двумя способами сортировки? Как академически правильно сортировать список?
Basilisk
Дата: 04.12.2007 17:49:50
LiYing
Как академически правильно сортировать список?

Академически есть два правильных метода: в порядке возрастания и в порядке убывания значений элементов.


LiYing

Как это сделать быстрее (и правильнее):
1) при создании листа делать Sorted := true и только потом загружать данные;
2) или уже после загрузки вызывать метод Sort?

все зависит от количества элементов и ихзначений.

кстати, есть еще и
3) или уже после загрузки делать Sorted := true
Den!
Дата: 04.12.2007 19:35:30
По моему мнению, время вставки элемента в нужную позицию отсортированного списка быстрей либо равно времени сортировки списка. Такчто хоть 1), хоть 2).