0Pricing
Lua Academy · Pelajaran

table.sort dengan Pembanding

Urutkan tabel dengan fungsi pembanding khusus dan strategi pengurutan stabil.

table.sort dengan Pembanding adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Apa Itu table.sort?

table.sort mengurutkan tabel secara langsung menggunakan fungsi pembanding. Tanpa pembanding, fungsi ini menggunakan operator <.

Pengurutan Naik Bawaan

Panggil table.sort(t) pada tabel berisi angka atau string untuk mengurutkannya secara menaik.

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

Pembanding Kustom

Berikan fungsi function(a, b) return a < b end sebagai argumen kedua.

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

Pengurutan Menurun

Balikkan perbandingan untuk mengurutkan secara menurun.

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

Mengurutkan Tabel berdasarkan Bidang

Urutkan larik berisi rekaman berdasarkan kunci bidang tertentu.

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

Pengurutan Multi-Kunci

Urutkan berdasarkan kunci utama, lalu berdasarkan kunci sekunder jika terdapat nilai yang sama.

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

Catatan Stabilitas

table.sort Lua tidak dijamin stabil. Elemen yang sama dapat muncul dalam urutan apa pun. Gunakan pemecah seri berupa indeks untuk mendapatkan hasil deterministik.

Mengurutkan String tanpa Membedakan Huruf Besar-Kecil

Normalisasi dengan string.lower di dalam pembanding.

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

Mengurutkan dengan Pengekstrak Kunci

Simpan kunci yang diekstrak untuk menghindari perhitungan berulang selama pengurutan dengan pendekatan transformasi Schwartzian.

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

Mengurutkan Tabel Besar

Untuk tabel yang sangat besar, pertimbangkan transformasi Schwartzian: pasangkan setiap elemen dengan kunci pengurutannya, urutkan, lalu ekstrak kembali elemennya. Cara ini mencegah penghitungan ulang kunci pada setiap perbandingan.

Langsung vs Salinan

table.sort mengubah tabel asli. Untuk mengurutkan salinan, gunakan table.move terlebih dahulu atau lakukan iterasi untuk menggandakannya, lalu urutkan hasil salinan tersebut.

Pertanyaan tentang Pembanding

Pembanding mana yang mengurutkan angka secara menaik?

Ringkasan: table.sort

table.sort mengurutkan secara langsung, menerima pembanding opsional, tidak stabil, dan umum digunakan bersama strategi berbasis bidang atau multi-kunci untuk kebutuhan pengurutan yang kompleks.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “table.sort dengan Pembanding” gratis?

Ya — teks lengkap “table.sort dengan Pembanding” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “table.sort dengan Pembanding”?

Urutkan tabel dengan fungsi pembanding khusus dan strategi pengurutan stabil. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “table.sort dengan Pembanding” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. table.sort dengan Pembanding
  2. table.concat dan table.move
  3. Salinan Mendalam dan Salinan Dangkal
  4. Mentransformasi Tabel: map, filter, reduce
← Kembali ke Lua Academy