mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
gh-114466: explicitly define heap invariant (#117778)
I think the choice of wording in these docs is great and doesn't need to change. However, it could be useful to explicitly define this term / the cost of doing so seems relatively low.
This commit is contained in:
parent
c2a551a30b
commit
37a4cbd872
1 changed files with 3 additions and 2 deletions
|
|
@ -17,7 +17,9 @@ This module provides an implementation of the heap queue algorithm, also known
|
|||
as the priority queue algorithm.
|
||||
|
||||
Heaps are binary trees for which every parent node has a value less than or
|
||||
equal to any of its children. This implementation uses arrays for which
|
||||
equal to any of its children. We refer to this condition as the heap invariant.
|
||||
|
||||
This implementation uses arrays for which
|
||||
``heap[k] <= heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]`` for all *k*, counting
|
||||
elements from zero. For the sake of comparison, non-existing elements are
|
||||
considered to be infinite. The interesting property of a heap is that its
|
||||
|
|
@ -319,4 +321,3 @@ applications, and I think it is good to keep a 'heap' module around. :-)
|
|||
backwards, and this was also used to avoid the rewinding time. Believe me, real
|
||||
good tape sorts were quite spectacular to watch! From all times, sorting has
|
||||
always been a Great Art! :-)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue