0Pricing
Lua Academy · Lektion

table.sort mit Vergleichsfunktionen

Sortieren Sie Tabellen mit benutzerdefinierten Vergleichsfunktionen und stabilen Sortierverfahren

table.sort mit Vergleichsfunktionen ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist table.sort?

table.sort sortiert eine Tabelle direkt und verwendet dabei eine Vergleichsfunktion. Ohne Vergleichsfunktion wird der Operator < verwendet.

Aufsteigende Standardsortierung

Rufen Sie table.sort(t) für eine Tabelle mit Zahlen oder Zeichenketten auf, um sie aufsteigend zu sortieren.

local nums = {5, 2, 8, 1, 9}
table.sort(nums)
for _, v in ipairs(nums) do print(v) end

Benutzerdefinierter Vergleicher

Übergeben Sie als zweites Argument eine Funktion wie function(a, b) return a < b end.

local words = {"banana", "apple", "cherry"}
table.sort(words, function(a, b) return a < b end)
print(table.concat(words, ", "))

Absteigende Sortierung

Kehren Sie den Vergleich um, um absteigend zu sortieren.

local nums = {3, 1, 4, 1, 5, 9}
table.sort(nums, function(a, b) return a > b end)
print(table.concat(nums, ", "))

Tabellen nach einem Feld sortieren

Sortieren Sie ein Array aus Datensätzen nach dem Schlüssel eines bestimmten Feldes.

local people = {
  {name="Charlie", age=30},
  {name="Alice", age=25},
  {name="Bob", age=28}
}
table.sort(people, function(a, b) return a.age < b.age end)
for _, p in ipairs(people) do print(p.name, p.age) end

Sortierung nach mehreren Schlüsseln

Sortieren Sie zuerst nach einem Primärschlüssel und bei Gleichstand nach einem Sekundärschlüssel.

table.sort(people, function(a, b)
  if a.age ~= b.age then return a.age < b.age end
  return a.name < b.name
end)

Hinweis zur Stabilität

table.sort in Lua ist nicht garantiert stabil. Gleiche Elemente können in beliebiger Reihenfolge erscheinen. Verwenden Sie einen Index als zusätzlichen Vergleichsschlüssel, um deterministische Ergebnisse zu erhalten.

Zeichenketten ohne Berücksichtigung der Groß-/Kleinschreibung sortieren

Normalisieren Sie die Zeichenketten mit string.lower innerhalb des Vergleichers.

table.sort(words, function(a, b)
  return a:lower() < b:lower()
end)

Sortieren mit einem Schlüssel-Extraktor

Speichern Sie extrahierte Schlüssel zwischen, um wiederholte Berechnungen während der Sortierung zu vermeiden. Verwenden Sie dazu einen Ansatz nach dem Schwartzian-Transform-Muster.

local function sortBy(t, keyFn)
  local keyed = {}
  for i, v in ipairs(t) do keyed[i] = {val=v, key=keyFn(v)} end
  table.sort(keyed, function(a, b) return a.key < b.key end)
  for i, item in ipairs(keyed) do t[i] = item.val end
end

Große Tabellen sortieren

Erwägen Sie für sehr große Tabellen einen Schwartzian Transform: Paaren Sie jedes Element mit seinem Sortierschlüssel, sortieren Sie anschließend und extrahieren Sie dann die Elemente. Dadurch wird vermieden, den Schlüssel bei jedem Vergleich neu zu berechnen.

Direkte Änderung vs. Kopie

table.sort verändert die ursprüngliche Tabelle. Um eine Kopie zu sortieren, verwenden Sie zunächst table.move oder durchlaufen Sie die Tabelle zum Klonen und sortieren Sie anschließend den Klon.

Vergleicher-Frage

Welcher Vergleicher sortiert Zahlen in aufsteigender Reihenfolge?

Zusammenfassung: table.sort

table.sort sortiert direkt, akzeptiert einen optionalen Vergleicher, ist nicht stabil und wird häufig mit feldbasierten oder mehrschlüsseligen Strategien für komplexe Sortieranforderungen verwendet.

Häufig gestellte Fragen

Ist die Lektion „table.sort mit Vergleichsfunktionen“ kostenlos?

Ja — der vollständige Text von „table.sort mit Vergleichsfunktionen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „table.sort mit Vergleichsfunktionen“?

Sortieren Sie Tabellen mit benutzerdefinierten Vergleichsfunktionen und stabilen Sortierverfahren Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Lua Academy zu starten?

Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „table.sort mit Vergleichsfunktionen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?

Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. table.sort mit Vergleichsfunktionen
  2. table.concat und table.move
  3. Tiefe und flache Kopien
  4. Tabellen transformieren: map, filter, reduce
← Zurück zu Lua Academy