2014-01-19 2 views
0

В настоящее время я использую PriorityBlockingQueue для моей системы-потребителя-потребителя, но поскольку у меня есть только 3 разных приоритета, я думал об использовании 3 разных BlockingQueues.Использование нескольких очередей вместо одного PriorityQueue

Таким образом, при вставке элементов не должно выполняться никаких работ.

Может ли этот подход быть более эффективным или нет и почему?

ответ

1

Несомненно, этот способ более эффективен, так как он имеет O(1) время вставки против O(log N) время вставки очереди приоритетов.

Это следует за идеей counting sort, в которой вы подсчитываете количество каждого элемента и соответствующим образом выводите их. Сортировка сортировки также использует тот факт, что все входные элементы попадают в узкий диапазон значений.

Смежные вопросы