الگوریتم های MutableCollection

public protocol MutableCollectionAlgorithms: MutableCollection
where SubSequence: MutableCollectionAlgorithms

نقاط سفارشی سازی را برای الگوریتم های MutableCollection فراهم می کند.

اگر این الزامات در کتابخانه استاندارد گنجانده شود، فقط بخشی از MutableCollection خواهد بود. در عین حال، می‌توانید مطابقت یک مجموعه را با MutableCollectionAlgorithms اعلام کنید تا این نقاط سفارشی‌سازی را از الگوریتم‌های دیگر تعریف‌شده در MutableCollectionAlgorithms استفاده کنید.

  • عناصر مجموعه را می چرخاند به طوری که عنصر در middle ابتدا به پایان برسد.

    پیچیدگی

    بر )

    اعلام

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

    ارزش بازگشتی

    شاخص جدید عنصری که ابتدا پیش چرخش بود.

  • تمام عناصر راضی کننده isSuffixElement به پسوندی از مجموعه منتقل می کند و ترتیب نسبی آنها را حفظ می کند و شروع پسوند حاصل را برمی گرداند.

    پیچیدگی

    O(n) که در آن n تعداد عناصر است.

    اعلام

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