Algorithmen und Datenstrukturen in Swift: Ein vollständiger Kurs für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in Algorithmen und Datenstrukturen in Swift

Swift ist eine leistungsstarke und intuitive Programmiersprache, die von Apple für die Entwicklung von Apps für iOS, macOS, watchOS und tvOS entwickelt wurde. Um jedoch effizienten und schnellen Code zu schreiben, reicht es nicht aus, nur die Syntax zu kennen. Das Verständnis von Algorithmen und Datenstrukturen ist die Grundlage, die einen Anfänger in einen professionellen Entwickler verwandelt.

In diesem Artikel behandeln wir die grundlegenden Datenstrukturen (Arrays, Dictionaries, Sets) und die wichtigsten Algorithmen (Sortierung, Suche) in Swift. Alle Codebeispiele sind bereit zur Ausführung im Xcode Playground.



Grundlegende Datenstrukturen in Swift

Swift bietet integrierte Datenstrukturen, die für Speicher- und Leistungsoptimierung ausgelegt sind. Betrachten wir die drei wichtigsten.



Arrays (Array)

Ein Array ist eine geordnete Sammlung von Elementen desselben Typs. In Swift sind Arrays streng typisiert und haben eine feste Reihenfolge.

// Array erstellenvar numbers: [Int] = [1, 2, 3, 4, 5]

// Element hinzufügennumbers.append(6)

// Zugriff über Indexlet first = numbers[0] // 1

// Iterationfor number in numbers { print(number)}

// Direkte Sortierungnumbers.sort() // [1, 2, 3, 4, 5, 6]

Arrays sind ideal, wenn die Reihenfolge der Elemente wichtig ist und ein schneller Zugriff über den Index benötigt wird (O(1)). Das Einfügen oder Löschen am Anfang eines Arrays erfordert jedoch O(n) Zeit.



Dictionaries (Dictionary)

Ein Dictionary speichert Schlüssel-Wert-Paare. Die Schlüssel müssen eindeutig und hashbar sein (z. B. String, Int).

// Dictionary erstellenvar scores: [String: Int] = ["Alice": 95, "Bob": 87]

// Hinzufügen oder Aktualisierenscores["Charlie"] = 92

// Wert abrufen (optional)if let aliceScore = scores["Alice"] { print("Alice's score: \\(aliceScore)")}

// Löschenscores.removeValue(forKey: "Bob")

Dictionaries ermöglichen den Zugriff auf einen Wert über einen Schlüssel in durchschnittlich O(1). Verwenden Sie sie, wenn Daten natürlich nach eindeutigen Schlüsseln gruppiert werden.



Sets (Set)

Ein Set ist eine ungeordnete Sammlung eindeutiger Elemente. Nützlich für die Prüfung auf Zugehörigkeit und das Entfernen von Duplikaten.

// Set erstellenvar fruits: Set<String> = ["Apple", "Banana", "Orange"]

// Hinzufügenfruits.insert("Mango")

// Vorhandensein prüfenif fruits.contains("Apple") { print("Apple is in the set")}

// Duplikate aus einem Array entfernenlet arrayWithDuplicates = [1, 1, 2, 3, 3, 4]let uniqueSet = Set(arrayWithDuplicates) // {1, 2, 3, 4}


Basisalgorithmen in Swift

Wenden wir nun die Datenstrukturen an, um typische Aufgaben zu lösen. Betrachten wir Sortierung und Suche.



Sortieralgorithmen

Swift verfügt über eine integrierte Funktion sort(), aber zum Verständnis schreiben wir den klassischen Algorithmus Quick Sort (Schnelle Sortierung).

func quickSort(_ array: [Int]) -> [Int] {    guard array.count > 1 else { return array }        let pivot = array[array.count / 2]    let less = array.filter { $0 < pivot }    let equal = array.filter { $0 == pivot }    let greater = array.filter { $0 > pivot }        return quickSort(less) + equal + quickSort(greater)}

let unsorted = [3, 6, 1, 8, 2, 9, 4]let sorted = quickSort(unsorted)print(sorted) // [1, 2, 3, 4, 6, 8, 9]

Quick Sort ist einer der effizientesten Algorithmen mit einer durchschnittlichen Komplexität von O(n log n). Für kleine Arrays kann die integrierte sorted() verwendet werden.



Suchalgorithmen

Lineare Suche ist einfach, aber langsam (O(n)). Für sortierte Daten verwenden Sie die binäre Suche (O(log n)).

// Binäre Suchefunc binarySearch(_ array: [Int], target: Int) -> Int? {    var low = 0    var high = array.count - 1        while low <= high {        let mid = (low + high)                

Blogs

Buchempfehlungen