This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
Binary prioritization is a sorting algorithm which prioritizes to-do tasks.
Unlike other Binary Sort methods (e.g. binary search) this method assumes that the deferred work will be prioritized in a later process, but their order is not relevant in the first iteration. The faster processing of classified and important tasks is achieved by reducing the cost of sorting by not sorting the subset of the less important tasks. In each iteration, the cost is reduced by the sorted elements.
For the application of the binary prioritization it is assumed that the elements to be prioritized are present in an unsorted heap.
The algorithm of the binary prioritization is as follows:
- One element is taken from the stack (or list).
- The element (the object) is analyzed regarding its priority (importance) relative to the other elements.
- If the item is judged as important, it is sorted on a new batch (to a new list) of important elements; if not, it is sorted on a different stack (in a different list) of unimportant elements. This is repeated in the first iteration until all items have been evaluated into two new stacks (or lists).
- The two stacks (lists) are then reunited by the stacking the important elements on the elements that were considered to be unimportant. The last element of the first stack is memorized, e.g. by a separator.
- The algorithm is then applied in an additional iteration on the united stack up to the separator element.
- If there was only one element in the last step, the algorithm is complete.
An example of the application of Binary sorting is the following scenario: A mail inbox has to be sorted and important mails have to be answered first, no matter the relative importance of rather unimportant mails.