Neat C# solution using the framework BinarySearch
\npublic class MedianFinder\n    {\n        private readonly List<int> store;\n\n        public MedianFinder()\n        {\n            store = new List<int, int
```\npublic class MedianFinder\n    {\n        private readonly List<int> store;\n\n        public MedianFinder()\n        {\n            store = new List<int, int>();\n        }\n\n        public void AddNum(int num)\n        {\n            int index = store.BinarySearch(num);\n            // If value is not found and value is less than one or more elements in array,\n            // the negative number returned is the bitwise complement of the index of the first element that is larger than value.\n            index = index >= 0 ? index : ~index;\n            store.Insert(index, num);\n        }\n\n        public double FindMedian()\n        {\n            int count = store.Count;\n            return count % 2 != 0 ? \n                store[count / 2] : \n                ((double)(store[count / 2 - 1] + store[count / 2])) / 2;\n        }\n    }\n```\n\t
['Binary Tree']