1
0
mirror of https://github.com/golang/go synced 2024-11-16 21:54:51 -07:00

container/heap: add available godoc link

Change-Id: I886a8869ba885286ac8219bc7e245c9237ad4c99
Reviewed-on: https://go-review.googlesource.com/c/go/+/534777
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Run-TryBot: shuang cui <imcusg@gmail.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
This commit is contained in:
cui fliter 2023-10-12 14:54:31 +08:00 committed by Gopher Robot
parent cf97cd317b
commit ade730a96c

View File

@ -21,13 +21,13 @@ import "sort"
// for a type using the routines in this package. // for a type using the routines in this package.
// Any type that implements it may be used as a // Any type that implements it may be used as a
// min-heap with the following invariants (established after // min-heap with the following invariants (established after
// Init has been called or if the data is empty or sorted): // [Init] has been called or if the data is empty or sorted):
// //
// !h.Less(j, i) for 0 <= i < h.Len() and 2*i+1 <= j <= 2*i+2 and j < h.Len() // !h.Less(j, i) for 0 <= i < h.Len() and 2*i+1 <= j <= 2*i+2 and j < h.Len()
// //
// Note that Push and Pop in this interface are for package heap's // Note that [Push] and [Pop] in this interface are for package heap's
// implementation to call. To add and remove things from the heap, // implementation to call. To add and remove things from the heap,
// use heap.Push and heap.Pop. // use [heap.Push] and [heap.Pop].
type Interface interface { type Interface interface {
sort.Interface sort.Interface
Push(x any) // add x as element Len() Push(x any) // add x as element Len()
@ -55,7 +55,7 @@ func Push(h Interface, x any) {
// Pop removes and returns the minimum element (according to Less) from the heap. // Pop removes and returns the minimum element (according to Less) from the heap.
// The complexity is O(log n) where n = h.Len(). // The complexity is O(log n) where n = h.Len().
// Pop is equivalent to Remove(h, 0). // Pop is equivalent to [Remove](h, 0).
func Pop(h Interface) any { func Pop(h Interface) any {
n := h.Len() - 1 n := h.Len() - 1
h.Swap(0, n) h.Swap(0, n)
@ -78,7 +78,7 @@ func Remove(h Interface, i int) any {
// Fix re-establishes the heap ordering after the element at index i has changed its value. // Fix re-establishes the heap ordering after the element at index i has changed its value.
// Changing the value of the element at index i and then calling Fix is equivalent to, // Changing the value of the element at index i and then calling Fix is equivalent to,
// but less expensive than, calling Remove(h, i) followed by a Push of the new value. // but less expensive than, calling [Remove](h, i) followed by a Push of the new value.
// The complexity is O(log n) where n = h.Len(). // The complexity is O(log n) where n = h.Len().
func Fix(h Interface, i int) { func Fix(h Interface, i int) {
if !down(h, i, h.Len()) { if !down(h, i, h.Len()) {