Contents

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 // 2

Arrays 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 // 1

Complexity

| 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