ordered_slice

package
v0.0.0-...-4486ec2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2024 License: MIT Imports: 3 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MergeSort

func MergeSort[T order.Ordered[T]](s []T)

Space complexity: O(n) Time complexity (Worse, Average, Best): O(n log n)

func Sort

func Sort[T order.Ordered[T]](s []T)

Sort in place (MergeSort)

Types

type OrderedSlice

type OrderedSlice[T order.Ordered[T]] struct {
	// contains filtered or unexported fields
}

func FromSlice

func FromSlice[T order.Ordered[T]](sl []T) OrderedSlice[T]

func New

func New[T order.Ordered[T]](capacity int) OrderedSlice[T]

func (*OrderedSlice[T]) Add

func (os *OrderedSlice[T]) Add(elts ...T)

func (*OrderedSlice[T]) AsSlice

func (os *OrderedSlice[T]) AsSlice() []T

Return the underlying slice. Can be used to break the ordered invariant, and as such should be used carefully

func (*OrderedSlice[T]) BinarySearch

func (os *OrderedSlice[T]) BinarySearch(elt T) (i int, ok bool)

func (*OrderedSlice[T]) Cap

func (os *OrderedSlice[T]) Cap() int

func (*OrderedSlice[T]) Get

func (os *OrderedSlice[T]) Get(elt T) *T

func (*OrderedSlice[T]) GetAt

func (os *OrderedSlice[T]) GetAt(index int) *T

func (*OrderedSlice[T]) Len

func (os *OrderedSlice[T]) Len() int

func (*OrderedSlice[T]) LinearSearch

func (os *OrderedSlice[T]) LinearSearch(elt T) (i int, ok bool)

func (OrderedSlice[T]) Merge

func (a OrderedSlice[T]) Merge(b OrderedSlice[T]) OrderedSlice[T]

func (*OrderedSlice[T]) Pop

func (os *OrderedSlice[T]) Pop() T

Remove and return the first element of the slice

func (*OrderedSlice[T]) ReOrder

func (os *OrderedSlice[T]) ReOrder()

Can be used to make sure the orderedSlice is still ordered if some of it's element have been modified.

func (*OrderedSlice[T]) Remove

func (os *OrderedSlice[T]) Remove(elt T) bool

Returns true if the element was able to be removed, false otherwise

func (*OrderedSlice[T]) RemoveAt

func (os *OrderedSlice[T]) RemoveAt(i int)

func (*OrderedSlice[T]) Search

func (os *OrderedSlice[T]) Search(elt T) (i int, ok bool)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL