예제 #1
0
        public static int Rank(int[] a, int key, int low, int high, Counter counter)
        {
            counter.Increment();

            if (low > high) return -1;
            int mid = low + (high - low) / 2;

            if (key < a[mid]) return Rank(a, key, low, mid - 1, counter);
            else if (key > a[mid]) return Rank(a, key, mid + 1, high, counter);
            else return mid;
        }
예제 #2
0
        public void E129()
        {
            var a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var counter = new Counter("Rank Counter");

            Debug.WriteLine(Rank(a, 1, 0, a.Length, counter));
            Debug.WriteLine(counter.ToString());
        }