0Pricing
Swift Academy · レッスン

並べ替え、検索、スライス

sorted()、sort()、firstIndex(of:)、prefix、suffix、ArraySliceを学びます。

「並べ替え、検索、スライス」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

ようこそ

Swift の配列には、ソート、検索、スライスのための豊富なアルゴリズムが用意されています。これらを学ぶと、手書きのループを減らし、より簡潔で高速なコードを書けるようになります。

sorted() と sort()

```swift let nums = [3,1,4,1,5,9] let sorted = nums.sorted() // new array, nums unchanged var mutable = [3,1,4] mutable.sort() // in-place sort ``` `sorted()` は `let` の配列で使用できますが、`sort()` には `var` が必要です。

カスタムソート順

```swift let words = ["banana","apple","cherry"] let alpha = words.sorted() // ascending let rev = words.sorted(by: >) // descending let byLen = words.sorted { $0.count < $1.count } // by length ```

first(where:) と last(where:)

```swift let nums = [4, 7, 2, 9, 1] let first = nums.first { $0 > 5 } // Optional(7) let last = nums.last { $0 > 5 } // Optional(9) ``` 手動でループするよりも効率的です。最初に一致した要素が見つかると処理を停止します。

partition(by:) による二分探索

Swift の標準ライブラリでは、効率的に O(n) で分割するために partition を使用します: ```swift var nums = [3, 1, 4, 1, 5, 9, 2] let pivotIdx = nums.partition { $0 >= 5 } // nums is now [...<5 values..., 5,9] and pivotIdx is the split point ```

配列スライス:prefix と suffix

```swift let arr = [10,20,30,40,50] let first3 = arr.prefix(3) // ArraySlice [10,20,30] let last2 = arr.suffix(2) // ArraySlice [40,50] let mid = arr[1...3] // ArraySlice [20,30,40] ``` スライスはビューであり、元の配列とストレージを共有します。

スライスから配列への変換

```swift let slice = arr.prefix(3) let copy = Array(slice) // independent [Int] copy ``` 元の配列のライフタイムを越えてスライスを保存する必要がある場合は、必ず `Array` に変換してください。

drop と dropFirst/dropLast

```swift let arr = [1,2,3,4,5] let d1 = arr.dropFirst() // [2,3,4,5] let d2 = arr.dropLast(2) // [1,2,3] let d3 = arr.drop { $0 < 3 } // [3,4,5] — drop while condition holds ```

min() と max()

```swift let scores = [88, 95, 70, 82] print(scores.min()!) // 70 print(scores.max()!) // 95 let minByLen = ["cat","elephant","ox"].min { $0.count < $1.count } // "ox" ```

contains と allSatisfy

```swift let nums = [2, 4, 6, 8] print(nums.allSatisfy { $0 % 2 == 0 }) // true print(nums.contains { $0 > 10 }) // false ``` `allSatisfy` と `contains(where:)` は、早い段階で条件が確定すると処理を短絡します。

クイックチェック

配列の先頭から N 個の要素を `ArraySlice` として返すメソッドはどれですか?

まとめ

主なポイント: • `sorted()` → 新しい配列を返す、`sort()` → 配列をその場で変更する • `first(where:)` / `last(where:)` — 要素を検索する • `prefix`、`suffix`、`[range]` — スライスを作成する(コピーは作成しない) • `drop(while:)`、`dropFirst`、`dropLast` — 端から要素を取り除く • `min()`、`max()`、`allSatisfy`、`contains(where:)` 次は、map、filter、reduce です。

よくある質問

「並べ替え、検索、スライス」レッスンは無料ですか?

はい。「並べ替え、検索、スライス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「並べ替え、検索、スライス」で何を学びますか?

sorted()、sort()、firstIndex(of:)、prefix、suffix、ArraySliceを学びます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「並べ替え、検索、スライス」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 配列の作成と変更
  2. 並べ替え、検索、スライス
  3. 配列に対するMap、Filter、Reduce
  4. 2次元配列とネストしたコレクション
← Swift Academyに戻る