示例#1
0
        ToEnumerable()
        {
            SpanHeap.Make <TValue, TExtractor, TKey, TComparer>(
                ToBeSorted, _extractor, _comparer);

            return(new SpanEnumerable <TValue, TValue, OrderingProducer <TValue, TKey, TComparer, TExtractor> >(
                       ToBeSorted,
                       new OrderingProducer <TValue, TKey, TComparer, TExtractor>(
                           _extractor, _comparer),
                       length: ToBeSorted.Length));
        }
示例#2
0
        private Span <TValue> RealProduce(Span <TValue> input, Span <TValue> output)
        {
            var count = Math.Min(input.Length, output.Length);

            for (var i = 0; i < count; ++i)
            {
                output[i] = SpanHeap.ExtractMin <TValue, TExtractor, TKey, TComparer>(
                    ref input, _extractor, _comparer);
            }

            return(output.Slice(0, count));
        }