Это действительно зависит от особенностей вашей настройки.Если у вас многоядерный компьютер, вы, вероятно, сможете очень быстро отсортировать строки, используя параллельную версию быстрой сортировки , в которой каждый рекурсивный вызов выполняется параллельно с другим вызовом.Со многими ядрами это может занять уже быструю быструю сортировку и существенно ускорить ее.Другие алгоритмы сортировки, такие как сортировка слиянием, также могут быть распараллелены, хотя параллельная быстрая сортировка имеет то преимущество, что требует меньше дополнительной памяти.Поскольку вы знаете, что вы сортируете строки, вы также можете захотеть изучить параллельную сортировку по основанию , которая потенциально может быть очень быстрой.
Большинство двоичных деревьев поиска не могут быть легко многопоточными, потому чтоОперации восстановления баланса часто требуют одновременной смены нескольких частей дерева, поэтому сбалансированное красное / черное дерево может оказаться не лучшим подходом.Тем не менее, вы можете захотеть взглянуть на параллельный список пропусков , который представляет собой структуру данных, которую можно заставить работать эффективно параллельно.Существуют некоторые новые бинарные деревья поиска, разработанные для параллелизма, которые иногда превосходят список пропусков ( вот одна из таких структур данных ), хотя я ожидаю, что будет меньше существующих реализаций и обсуждение этих новых структур.
Если элементы не меняются часто, или вам нужно отсортировать заказ только один раз, тогда, вероятно, лучшим выбором будет только одна сортировка с параллельной быстрой сортировкой.Если элементы часто меняются, то лучше использовать параллельную структуру данных, такую как параллельный список пропусков.
Надеюсь, это поможет!