Swift Algorithm Club」はSwiftを使って代表的なアルゴリズムやデータ構造を実装したソースコードを多数格納するリポジトリ。コンピューターサイエンスを学んでいる学生の方や、基礎からアルゴリズムの実装方法の詳細を学び直したい開発者の方にお勧めの情報が集められています。

プロジェクトの目標はアルゴリズムがどのように機能するかを説明することで、明快で読みやすいだけではなく、実際にプロジェクトで使用可能な信頼性の高いソースコードの開発を目指しています。

記事執筆時ソースコードはXcode 7.3/Swift 2.2と互換性があり、最新の開発環境で試すことができます。

初めてのアルゴリズム

同サイトによると初心者向けのアルゴリムとして以下のものがリストアップされています。

例えば先入れ先出しの待ち行列のデータ構造を表現するキューのソースコードは以下のようになっています。

public struct Queue<T> {
  private var array = [T]()

  public var count: Int {
    return array.count
  }

  public var isEmpty: Bool {
    return array.isEmpty
  }

  public mutating func enqueue(element: T) {
    array.append(element)
  }

  public mutating func dequeue() -> T? {
    if isEmpty {
      return nil
    } else {
      return array.removeFirst()
    }
  }

  public func peek() -> T? {
    return array.first
  }
}

単体のSwiftソースコードQueue.swiftのほか、実行例が確認できるQueue.playgroundも含まれています。

S 2016 06 09 15 29 45

実際に動かしながら確認できるので理解が進むのではないでしょうか。

まとめ

Swift Algorithm Clubには多数のアルゴリム、データ構造のソースコードが含まれています。アルゴリズムとSwiftを同時に勉強したい方、Swiftで優れたアルゴリズムを使ってみたい方にとって大変参考になるリポジトリだと思われます。