MutableCollectionAlgorithms

public protocol MutableCollectionAlgorithms: MutableCollection
where SubSequence: MutableCollectionAlgorithms

מספק נקודות התאמה אישית עבור אלגוריתמים MutableCollection .

אם ישולבו בספרייה הסטנדרטית, דרישות אלה יהיו רק חלק מ- MutableCollection . בינתיים, אתה יכול להצהיר על התאמה של אוסף ל- MutableCollectionAlgorithms כדי לקבל נקודות התאמה אישית אלו לשימוש מאלגוריתמים אחרים המוגדרים ב- MutableCollectionAlgorithms .

  • מסובב את רכיבי האוסף כך שהאלמנט middle יסתיים ראשון.

    מוּרכָּבוּת

    O( n )

    הַצהָרָה

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

    ערך החזרה

    האינדקס החדש של האלמנט שהיה הראשון לפני הסיבוב.

  • stablePartition(isSuffixElement:) שיטת הרחבה

    מעביר את כל הרכיבים העונים על isSuffixElement לסיומת של האוסף, שומר על הסדר היחסי שלהם, ומחזיר את ההתחלה של הסיומת שנוצרה.

    מוּרכָּבוּת

    O(n) כאשר n הוא מספר האלמנטים.

    הַצהָרָה

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