1. reverse()
1-1. 定義
mutating func reverse()
1-2. コード例
var characters: [Character] = ["a", "b", "c", "d", "e"]
characters.reverse()
print(characters) //["e", "d", "c", "b", "a"]
1-3. 計算量
- reverse(n)は O(n) を満たします。(nは任意の数)。
- データ量であるnが増えれば増えるほど計算量も比例して増加します。例えば、O(5)であれば、5回分比例して計算量が増えます。
2. reversed()
2-1. 定義
func reversed() -> ReversedCollection<Self>
2-2. コード例
reversed()メソッドを用いることで、要素ごとに新しい空間を割り当てることなく、コレクションを逆順にすることができます。ReversedCollectionインスタンスを使うことによって、コレクションをwrapし、要素を逆順に変換したコレクションへ素早くアクセスすることができます。
let word = "Backwards"
for char in word.reversed() {
print(char, terminator: "") //"sdrawkcaB"
}
また、reversedを用いれば、コレクションをイニシャライザとして使うことができます。
let reversedWord = String(word.reversed())
print(reversedWord) //"sdrawkcaB"
2-3. 計算量
- reversed()は、文字列の長さに関わらず O(1) です。