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:
parent
cf97cd317b
commit
ade730a96c
@ -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()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user