コード例 #1
0
 private int FindTarget(SortedArray <int> items, int searchTarget, SearchIndicies searchIndicies)
 {
     if (items.Length == 0 ||
         searchIndicies.Mid < searchIndicies.Low ||
         searchIndicies.Mid > searchIndicies.High)
     {
         return(NotFound);
     }
     else if (items[searchIndicies.Mid] == searchTarget)
     {
         return(searchIndicies.Mid);
     }
     else
     {
         SearchIndicies nextInidicies = NextIndices(items[searchIndicies.Mid], searchTarget, searchIndicies);
         return(FindTarget(items, searchTarget, nextInidicies));
     }
 }
コード例 #2
0
        public override int Locate(SortedArray <int> items, int searchTarget)
        {
            int            found          = NotFound;
            SearchIndicies searchIndicies = new SearchIndicies(items.Length - 1, 0);

            while (found == -1 && searchIndicies.Mid >= searchIndicies.Low && searchIndicies.Mid <= searchIndicies.High)
            {
                if (items[searchIndicies.Mid] == searchTarget)
                {
                    found = searchIndicies.Mid;
                }
                else
                {
                    searchIndicies = NextIndices(items[searchIndicies.Mid], searchTarget, searchIndicies);
                }
            }

            return(found);
        }
コード例 #3
0
        public override int Locate(SortedArray <int> items, int searchTarget)
        {
            SearchIndicies searchIndicies = new SearchIndicies(items.Length - 1, 0);

            return(FindTarget(items, searchTarget, searchIndicies));
        }