コード例 #1
0
 private static ISearch GetSearch(EnumArraysSearchAlgorithms searchAlgorithm)
 {
     return(searchAlgorithm switch
     {
         EnumArraysSearchAlgorithms.Linear => new LinearSearch(),
         EnumArraysSearchAlgorithms.Jump => new JumpSearch(),
         EnumArraysSearchAlgorithms.Binary => new BinarySearch(),
         EnumArraysSearchAlgorithms.Interpolation => new InterpolationSearch(),
         _ => throw new NotImplementedException("Unknown algorithm '" + nameof(searchAlgorithm) + "'"),
     });
コード例 #2
0
    public SearchResults Estimate(EnumArraysSearchAlgorithms searchAlgorithm, EnumArrayDataProviders searchDataProvider)
    {
        var _search     = GetSearch(searchAlgorithm);
        var _searchData = new DataProvidersFactory(SampleSize).GetProvider(searchDataProvider);

        var searchResults = new SearchResults()
        {
            ArrayCount = _searchData.Data.Count
        };

        searchResults.MinValue      = _search.Find(_searchData.Data, _searchData.MinValue);
        searchResults.AvgValue      = _search.Find(_searchData.Data, _searchData.AvgValue);
        searchResults.MaxValue      = _search.Find(_searchData.Data, _searchData.MaxValue);
        searchResults.RandomValue   = _search.Find(_searchData.Data, _searchData.RandomValue);
        searchResults.NotFoundValue = _search.Find(_searchData.Data, _searchData.NotFoundValue);

        return(searchResults);
    }