Exemplo n.º 1
0
        public int SortedSearchNoSize(Listy listy, int target)
        {
            if (listy == null)
            {
                throw new ArgumentNullException();
            }
            if (target < 0)
            {
                throw new ArgumentOutOfRangeException();
            }
            var listySize = 4;

            while (listy.ElementAt(listySize) != -1)
            {
                listySize *= 2;
            }

            return(SortedSearchNoSizeHelper(listy, target, 0, listySize));
        }
Exemplo n.º 2
0
        private int SortedSearchNoSizeHelper(Listy listy, int target,
                                             int left, int right)
        {
            int middle = (left + right) / 2;

            if (listy.ElementAt(middle) == target)
            {
                return(middle);
            }
            if (left == right)
            {
                return(-1);
            }

            if (listy.ElementAt(middle) < target)
            {
                return(SortedSearchNoSizeHelper(listy, target, middle + 1, right));
            }
            return(SortedSearchNoSizeHelper(listy, target, left, middle - 1));
        }