public void HeapSortTest() { // arrange AlgorithmBase <int> heap = new DataStructures.Heap <int>(items); // act heap.SortAndGetSpan(); // assert for (int i = 0; i < items.Count; i++) { Assert.AreEqual(sorted[i], heap.Items[i]); } }
public static int NumberOfBoats(int[] weights, int limit) { DataStructures.Heap <int> maxRemainingCap = new DataStructures.Heap <int>(); int boats = 0; foreach (var weight in weights) { if (!maxRemainingCap.Empty() && maxRemainingCap.Peek() >= weight) { maxRemainingCap.Poll(); } else { maxRemainingCap.Add(limit - weight); boats++; } } return(boats); }