Пример #1
0
        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]);
            }
        }
Пример #2
0
        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);
        }