1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Swift】reverse()とreversed()の違い

Last updated at Posted at 2023-02-13

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) です。

参考ページ

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?