อัลกอริธึมคอลเลกชันที่ไม่แน่นอน

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