Thuật toán MutableCollection

public protocol MutableCollectionAlgorithms: MutableCollection
where SubSequence: MutableCollectionAlgorithms

Cung cấp các điểm tùy chỉnh cho thuật toán MutableCollection .

Nếu được tích hợp vào thư viện chuẩn, những yêu cầu này sẽ chỉ là một phần của MutableCollection . Trong thời gian chờ đợi, bạn có thể khai báo sự phù hợp của một bộ sưu tập với MutableCollectionAlgorithms để sử dụng các điểm tùy chỉnh này từ các thuật toán khác được xác định trên MutableCollectionAlgorithms .

  • Xoay các phần tử của bộ sưu tập sao cho phần tử ở middle kết thúc trước.

    Độ phức tạp

    TRÊN )

    Tuyên ngôn

    @discardableResult
    mutating mutating func rotate(shiftingToStart middle: Index) -> Index

    Giá trị trả về

    Chỉ mục mới của phần tử được xoay trước lần đầu tiên.

  • StablePartition(isSuffixElement:) Phương pháp mở rộng

    Di chuyển tất cả các phần tử thỏa mãn isSuffixElement vào một hậu tố của bộ sưu tập, giữ nguyên thứ tự tương đối của chúng và trả về phần bắt đầu của hậu tố kết quả.

    Độ phức tạp

    O(n) trong đó n là số phần tử.

    Tuyên ngôn

    @discardableResult
    mutating func stablePartition(
      isSuffixElement: (Element) throws -> Bool
    ) rethrows -> Index