public void InsertAndExtractSomeNumbers(int[] input, int[] output) { var sut = new MinBinaryHeap(5); foreach (var item in input) { sut.Insert(item); } foreach (var item in output) { Assert.Equal(item, sut.ExtractMin()); } }
public void Insert(int value) { if (IsEmpty()) { minBinaryHeap.Insert(value); } else if (value > Median()) { minBinaryHeap.Insert(value); } else { maxBinaryHeap.Insert(value); } if (minBinaryHeap.Size() > maxBinaryHeap.Size() + 1) { maxBinaryHeap.Insert(minBinaryHeap.ExtractMin()); } else if (maxBinaryHeap.Size() > minBinaryHeap.Size() + 1) { minBinaryHeap.Insert(maxBinaryHeap.ExtractMax()); } }