정렬된 함수

경고

이 설명서는 최신 QDK로 대체된 클래식 QDK를 참조합니다.

최신 QDK에 대한 API 설명서는 를 참조 https://aka.ms/qdk.api 하세요.

네임스페이스: Microsoft.Quantum.Arrays

패키지: Microsoft.Quantum.Standard

배열이 지정된 경우 지정된 비교 함수를 기준으로 정렬된 해당 배열의 요소를 반환합니다.

function Sorted<'T> (comparison : (('T, 'T) -> Bool), array : 'T[]) : 'T[]

입력

비교 : ('T,'T) ->Bool

가 인 경우 comparison(a, b) 보다 작거나 같은 것으로 간주되는 두 요소를 a 비교하는 b 함수입니다true.

array: 'T[]

정렬할 배열입니다.

출력: 'T[]

와 동일한 요소를 array포함하는 배열입니다. 따라서 요소 bcomparison(a, b) 보다 일찍 발생하는 모든 요소 a 에 대해 는 입니다true.

형식 매개 변수

T

각 요소의 형식입니다 array.

예제

다음 코드 조각은 오름차순으로 발생하도록 정수 배열을 정렬합니다.

let sortedArray = Sorted(LessThanOrEqualI, [3, 17, 11, -201, -11]);

설명

함수 comparison 는 전이적인 것으로 간주됩니다. 이 경우 comparison(a, b)comparison(b, c)comparison(a, c) 가 가정됩니다. 이 속성이 없으면 이 함수의 출력이 올바르지 않을 수 있습니다.

함수이므로 두 요소가 에서 comparison같음으로 간주되더라도 결과는 완전히 결정적입니다. 즉, 와 comparison(b, a) 가 모두 true인 경우 comparison(a, b) 입니다. 특히 이 함수에 의해 수행되는 정렬은 안정적인 것으로 보장되므로 두 요소가 a 내에서 해당 순서로 발생하고 에서 같은 acomparison것으로 간주되면 출력에도 앞에 b 표시됩니다.arrayb

예:

function LastDigitLessThanOrEqual(left : Int, right : Int) : Bool {
    return LessThanOrEqualI(
        left % 10, right % 10
    );
}

function SortedByLastDigit() : Int[] {
    return Sorted(LastDigitLessThanOrEqual, [3, 37, 11, 17]);
}
// returns [11, 3, 37, 17].