Re[3]: Как быстрее формировать список, который после заполне
От: Sharowarsheg  
Дата: 26.01.20 18:24
Оценка: +1
Здравствуйте, Passerby, Вы писали:

P>>>Если есть список, который после заполнения необходимо отсортировать.

P>>>Что быстрее: сразу вставлять элемент в нужное место в списке или после заполнения всего списка его сортировать?

S>>Большой ли список, часто ли повторяется процесс, список чего именно, какой язык? О каких вообще порядках размеров и о каком типе данных речь?

P>Размер списка от 0 до 400, процесс повторяется часто, List<(string,decimal)>, C#.

Маленький сравнительно. Я бы сказал заполнять список и потом сортировать, да и всё. Хорошо было бы радикально переработать как-то алгоритм, так, чтобы вообще не нужен был ни список, ни заполнение, ни сортировка. Я всегда считал самым классным вариантом — переработать алгоритм так, чтобы он стал вообще не нужен, а сразу получался ответ. Но здесь, если этого нельзя сделать, ничего особо не получится выиграть.

Нормальный вариант, либо взять List и сортировать, либо взять SortedDictionary (а повторы бывают в данных?), набить его и потом переписать в List или куда тебе его надо. SortedList бестолковый, он устроен на двух массивах внутри, у него вставки не алё. SortedDictionary лучше, устроен как дерево массивов или ещё какая-то такого типа каракатица, но на этом размере я сомневаюсь, что будет выигрыш какой-то.

Если довольно часто повторяется, в смысле, скажем, от миллиона раз, то можно подумать аллокации поэкономить (например, никогда не делать новый List<>, а только делать .Сlear старому), ну и вообще подумать, что можно повторно использовать.

Распараллеливать процесс, где всего 400 элементов, и обработки никакой нету, не выглядит перспективно.
Отредактировано 27.01.2020 3:30 Sharowarsheg . Предыдущая версия . Еще …
Отредактировано 26.01.2020 18:25 Sharowarsheg . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.