private static void AfterBottomNMaxHeapAdding_WorstCase() { double[] data = new double[2000000]; Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); BottomNMaxHeap <double> heap = new BottomNMaxHeap <double>(50); for (int val = data.Length; val > 0; val--) { heap.Add(val); } for (int i = 0; i < 50; i++) { //// 50 bottom n Console.WriteLine(heap.Pop()); //heap.Pop(); } stopWatch.Stop(); Console.WriteLine("Time: {0} ms", stopWatch.ElapsedMilliseconds); Console.WriteLine("Press any key to continue.."); Console.ReadLine(); }
private static void AfterBottomNMaxHeapAdding_AverageCase() { Random rand = new Random(); int[] int_data = Enumerable.Range(0, 2000001).OrderBy(c => rand.Next()).ToArray(); double[] data = new double[int_data.Count()]; for (int ind = 0; ind < data.Count(); ind++) { data[ind] = int_data[ind]; //data[ind] = rand.Next(100000000); } Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); BottomNMaxHeap <double> heap = new BottomNMaxHeap <double>(50); for (int val = 0; val < data.Length; val++) { heap.Add(data[val]); } for (int i = 0; i < 50; i++) { //// 50 bottom n //Console.WriteLine(heap.Pop()); heap.Pop(); } stopWatch.Stop(); Console.WriteLine("Time: {0} ms", stopWatch.ElapsedMilliseconds); Console.WriteLine("Press any key to continue.."); Console.ReadLine(); }
private static void BottomNMaxHeapConstruct() { double[] data_arr = new[] { 8.0, 7, 2, 1, 18, 32, 16, 21, 4, 0, 70 }; BottomNMaxHeap <double> heap = new BottomNMaxHeap <double>(data_arr.Length); foreach (var item in data_arr) { heap.Add(item); } //Console.WriteLine(heap); while (heap.CanPop()) { Console.WriteLine(heap.Pop()); } Console.ReadLine(); }