Используйте значение действительного числа в качестве приоритета. Вы всегда можете вставить значение между двумя существующими значениями, например, newPri = task1Pri + (task2Pri - task1Pri)/2
, где Task1 имеет числовое значение с более низким приоритетом (что, вероятно, имеет более высокий приоритет).
Корин указывает, что минимальные и максимальные приоритеты должны быть рассчитаны для задач, вставленных вверху или внизу списка приоритетов.
И Джоэлхарди напоминает нам, что процесс переупорядочения 1007 * - это хорошая идея время от времени очищать таблицу.