eneko/array-heap
This Swift package provides an extension for using arrays of `Comparable` elements as heaps (both min and max).
Usage
Empty arrays are already valid heaps! Because of this, elements can be inserted right away:
var heap = [Int]()
heap.minHeapInsert(2)
heap.heapTop // 2
heap.minHeapInsert(3)
heap.heapTop // 2
heap.minHeapInsert(1)
heap.heapTop // 1
heap.minHeapRemoveTop() // 1
heap.heapTop // 2Arrays with existing items can be transformed into a heap in linear time O(n):
let items = Array(1...100)
var heap = items.maxHeapified()
heap.heapTop // 100
heap.minHeapify()
heap.heapTop // 1Complexity
| Operation | Time Complexity | Space Complexity | | ----------- | --------------- | ---------------- | | top | O(1) | O(1) | | removeTop | O(log n) | O(1) | | insert | O(log n) | O(1) | | heapify/ied | O(n) | O(1) |
Package Metadata
Repository: eneko/array-heap
Default branch: main
README: README.md