Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-110067: Make max heap methods public and add missing ones#130725

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
encukou merged 27 commits intopython:mainfromStanFromIreland:add-heapq-max
May 5, 2025
Merged
Changes from1 commit
Commits
Show all changes
27 commits
Select commitHold shift + click to select a range
eccf484
Initial addition
StanFromIrelandMar 1, 2025
beaf915
Add C imp
StanFromIrelandMar 1, 2025
c143ae2
Benedikts suggestions
StanFromIrelandMar 1, 2025
167525d
Benedikts suggestions
StanFromIrelandMar 1, 2025
1b0b6f3
Update Modules/_heapqmodule.c with Benedikts suggestion
StanFromIrelandMar 1, 2025
fc46707
Fix mistake (extra underscores)
StanFromIrelandMar 1, 2025
f4fd94a
Benedikt's requested changes
StanFromIrelandMar 1, 2025
cebbc88
Missed one of Benedikt's requested changes
StanFromIrelandMar 1, 2025
3cde6c6
Benedikts suggestion
StanFromIrelandMar 1, 2025
5d2d387
Benedikts Suggestions
StanFromIrelandMar 2, 2025
a499cd4
Fix doc warnings
StanFromIrelandMar 2, 2025
abe0a95
Improve entries
StanFromIrelandMar 2, 2025
3561206
Address some of Petr's suggestions
StanFromIrelandMar 10, 2025
8fd1a03
Clean up and add missing
StanFromIrelandMar 10, 2025
8ab97c2
Update Doc/library/heapq.rst
StanFromIrelandMar 17, 2025
623cae7
Merge branch 'main' into add-heapq-max
StanFromIrelandApr 25, 2025
81db251
Sort and add missing C implementation
StanFromIrelandMay 2, 2025
38cbf13
Petr's list suggestion
StanFromIrelandMay 2, 2025
b6f4db4
heappushpop_max fixup
StanFromIrelandMay 2, 2025
61c9285
Improve test
StanFromIrelandMay 4, 2025
ebe00dc
Switch to <
StanFromIrelandMay 5, 2025
bc0dd66
Clean up test
StanFromIrelandMay 5, 2025
988b2d3
Reword the docs
encukouMay 5, 2025
6efd70c
Add max-heap variants for the other tests
encukouMay 5, 2025
4ba533b
Apply suggestions from code review
encukouMay 5, 2025
160bc35
Merge pull request #1 from encukou/add-heapq-max
StanFromIrelandMay 5, 2025
742c46c
final touchups
StanFromIrelandMay 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
PrevPrevious commit
final touchups
  • Loading branch information
@StanFromIreland
StanFromIreland committedMay 5, 2025
commit742c46cbb0fac25757ef7080ad83b3bdd8d4d413
20 changes: 10 additions & 10 deletionsDoc/library/heapq.rst
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -26,11 +26,7 @@ the compared elements exist. Elements are counted from zero. The interesting
property of a min-heap is that its smallest element is always the root,
``heap[0]``.

These two make it possible to view the heap as a regular Python list without
surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains the
heap invariant!

Max-heaps satisfy the reverse invariant: every parent node node has a value
Max-heaps satisfy the reverse invariant: every parent node has a value
*greater* than any of its children. These are implemented as lists for which
``maxheap[2*k+1] <= maxheap[k]`` and ``maxheap[2*k+2] <= maxheap[k]`` for all
*k* for which the compared elements exist.
Expand All@@ -42,18 +38,22 @@ We use zero-based indexing. This makes the relationship between the index for
a node and the indexes for its children slightly less obvious, but is more
suitable since Python uses zero-based indexing. (b) Textbooks often focus on
max-heaps, due to their suitability for in-place sorting. Our implementation
favors min-heaps as they better correspond to Python lists: :meth:`list.sort`
maintains the *min*-heap invariant.
favors min-heaps as they better correspond to Python :class:`lists <list>`.

These two aspects make it possible to view the heap as a regular Python list
without surprises: ``heap[0]`` is the smallest item, and ``heap.sort()``
maintains the heap invariant!

Like :meth:`list.sort`, this implementation uses only the ``<`` operator
for comparisons, for both min-heaps and max-heaps.

In the API below, and in this documentation, theunqalified term *heap*
In the API below, and in this documentation, theunqualified term *heap*
generally refers to a min-heap.
The API for max-heaps is named using a ``_max`` suffix.

To create a heap, use a list initialized to ``[]``, or you can transform a
populated list into a heap via function :func:`heapify`.
To create a heap, use a list initialized as ``[]``, or transform an existing list
into a min-heap or max-heap using the :func:`heapify` or :func:`heapify_max`
functions, respectively.

The following functions are provided for min-heaps:

Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp