Wolfgang Thallergcc 15.1.0ada185d1 year agoHistory
202 lines · 6.5 KB · D
RawDownload
// Written in the D programming language. /**This package implements generic algorithms oriented towards the processing ofsequences. Sequences processed by these functions define range-basedinterfaces.  See also $(MREF_ALTTEXT Reference on ranges, std, range) and$(HTTP ddili.org/ders/d.en/ranges.html, tutorial on ranges). $(SCRIPT inhibitQuickIndex = 1;) Algorithms are categorized into the following submodules: $(DIVC quickindex,$(BOOKTABLE ,$(TR $(TH Submodule) $(TH Functions))$(TR     $(TDNW $(SUBMODULE Searching, searching))     $(TD        $(SUBREF searching, all)        $(SUBREF searching, any)        $(SUBREF searching, balancedParens)        $(SUBREF searching, boyerMooreFinder)        $(SUBREF searching, canFind)        $(SUBREF searching, commonPrefix)        $(SUBREF searching, count)        $(SUBREF searching, countUntil)        $(SUBREF searching, endsWith)        $(SUBREF searching, find)        $(SUBREF searching, findAdjacent)        $(SUBREF searching, findAmong)        $(SUBREF searching, findSkip)        $(SUBREF searching, findSplit)        $(SUBREF searching, findSplitAfter)        $(SUBREF searching, findSplitBefore)        $(SUBREF searching, minCount)        $(SUBREF searching, maxCount)        $(SUBREF searching, minElement)        $(SUBREF searching, maxElement)        $(SUBREF searching, minIndex)        $(SUBREF searching, maxIndex)        $(SUBREF searching, minPos)        $(SUBREF searching, maxPos)        $(SUBREF searching, skipOver)        $(SUBREF searching, startsWith)        $(SUBREF searching, until)    ))$(TR    $(TDNW $(SUBMODULE Comparison, comparison))    $(TD        $(SUBREF comparison, among)        $(SUBREF comparison, castSwitch)        $(SUBREF comparison, clamp)        $(SUBREF comparison, cmp)        $(SUBREF comparison, either)        $(SUBREF comparison, equal)        $(SUBREF comparison, isPermutation)        $(SUBREF comparison, isSameLength)        $(SUBREF comparison, levenshteinDistance)        $(SUBREF comparison, levenshteinDistanceAndPath)        $(SUBREF comparison, max)        $(SUBREF comparison, min)        $(SUBREF comparison, mismatch)        $(SUBREF comparison, predSwitch)    ))$(TR    $(TDNW $(SUBMODULE Iteration, iteration))    $(TD        $(SUBREF iteration, cache)        $(SUBREF iteration, cacheBidirectional)        $(SUBREF iteration, chunkBy)        $(SUBREF iteration, cumulativeFold)        $(SUBREF iteration, each)        $(SUBREF iteration, filter)        $(SUBREF iteration, filterBidirectional)        $(SUBREF iteration, fold)        $(SUBREF iteration, group)        $(SUBREF iteration, joiner)        $(SUBREF iteration, map)        $(SUBREF iteration, mean)        $(SUBREF iteration, permutations)        $(SUBREF iteration, reduce)        $(SUBREF iteration, splitWhen)        $(SUBREF iteration, splitter)        $(SUBREF iteration, substitute)        $(SUBREF iteration, sum)        $(SUBREF iteration, uniq)    ))$(TR    $(TDNW $(SUBMODULE Sorting, sorting))    $(TD        $(SUBREF sorting, completeSort)        $(SUBREF sorting, isPartitioned)        $(SUBREF sorting, isSorted)        $(SUBREF sorting, isStrictlyMonotonic)        $(SUBREF sorting, ordered)        $(SUBREF sorting, strictlyOrdered)        $(SUBREF sorting, makeIndex)        $(SUBREF sorting, merge)        $(SUBREF sorting, multiSort)        $(SUBREF sorting, nextEvenPermutation)        $(SUBREF sorting, nextPermutation)        $(SUBREF sorting, nthPermutation)        $(SUBREF sorting, partialSort)        $(SUBREF sorting, partition)        $(SUBREF sorting, partition3)        $(SUBREF sorting, schwartzSort)        $(SUBREF sorting, sort)        $(SUBREF sorting, topN)        $(SUBREF sorting, topNCopy)        $(SUBREF sorting, topNIndex)    ))$(TR    $(TDNW Set operations $(BR)($(SUBMODULE setops, setops)))    $(TD        $(SUBREF setops, cartesianProduct)        $(SUBREF setops, largestPartialIntersection)        $(SUBREF setops, largestPartialIntersectionWeighted)        $(SUBREF setops, multiwayMerge)        $(SUBREF setops, multiwayUnion)        $(SUBREF setops, setDifference)        $(SUBREF setops, setIntersection)        $(SUBREF setops, setSymmetricDifference)    ))$(TR    $(TDNW $(SUBMODULE Mutation, mutation))    $(TD        $(SUBREF mutation, bringToFront)        $(SUBREF mutation, copy)        $(SUBREF mutation, fill)        $(SUBREF mutation, initializeAll)        $(SUBREF mutation, move)        $(SUBREF mutation, moveAll)        $(SUBREF mutation, moveSome)        $(SUBREF mutation, moveEmplace)        $(SUBREF mutation, moveEmplaceAll)        $(SUBREF mutation, moveEmplaceSome)        $(SUBREF mutation, remove)        $(SUBREF mutation, reverse)        $(SUBREF mutation, strip)        $(SUBREF mutation, stripLeft)        $(SUBREF mutation, stripRight)        $(SUBREF mutation, swap)        $(SUBREF mutation, swapRanges)        $(SUBREF mutation, uninitializedFill)    )))) Many functions in this package are parameterized with a $(GLOSSARY predicate).The predicate may be any suitable callable type(a function, a delegate, a $(GLOSSARY functor), or a lambda), or acompile-time string. The string may consist of $(B any) legal Dexpression that uses the symbol `a` (for unary functions) or thesymbols `a` and `b` (for binary functions). These names will NOTinterfere with other homonym symbols in user code because they areevaluated in a different context. The default for all binarycomparison predicates is `"a == b"` for unordered operations and`"a < b"` for ordered operations. Example: ----int[] a = ...;static bool greater(int a, int b){    return a > b;}sort!greater(a);           // predicate as aliassort!((a, b) => a > b)(a); // predicate as a lambda.sort!"a > b"(a);           // predicate as string                           // (no ambiguity with array name)sort(a);                   // no predicate, "a < b" is implicit---- Macros:SUBMODULE = $(MREF_ALTTEXT $1, std, algorithm, $2)SUBREF = $(REF_ALTTEXT $(TT $2), $2, std, algorithm, $1)$(NBSP) Copyright: Andrei Alexandrescu 2008-. License: $(HTTP boost.org/LICENSE_1_0.txt, Boost License 1.0). Authors: $(HTTP erdani.com, Andrei Alexandrescu) Source: $(PHOBOSSRC std/algorithm/package.d) */module std.algorithm; public import std.algorithm.comparison;public import std.algorithm.iteration;public import std.algorithm.mutation;public import std.algorithm.searching;public import std.algorithm.setops;public import std.algorithm.sorting; static import std.functional;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t