Здравствуйте, Аноним, Вы писали:
А>Допустим существует пять операций и 10 диапазонный приоритет:
А>Операция 1 — 10 приоритет А>Операция 2 — 8 приоритет А>Операция 3 — 6 приоритет А>Операция 4 — 5 приоритет А>Операция 5 — 2 приоритет
А>В кассу должны подходить люди чаще с высоким приоритетом операции — но и иногда пропускать операции с низкими приоритетами. А>Подскажите алгоритм более подходящий для живой очереди в кассу.
помнится, для своих служебных задач реализовал это так (просто и быстро, с похожим на правду результатом):
1) Сложим все приоритеты, получим число 31
2) сделаем массив длиной 31 элемент и заполним его числами от 1 до 5, количество — берем из приоритетов (то есть 10 единиц, 5 четверок....)
3) перемешали массив
4) проходим по массиву, элемент — это номер текущей операции.
Распределение операций получается не особо хорошее, но уже от задачи зависит, критично ли оно там. Мне было не критично.