0Pricing
Lua Academy · บทเรียน

ความยาวและการเรียงลำดับ

นับและเรียงลำดับลำดับข้อมูล

ความยาวและการเรียงลำดับ เป็นบทเรียน Lua Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Lua Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน

ตัวดำเนินการหาความยาว

ตัวดำเนินการ # จะคืนค่าจำนวนรายการในลำดับ

สำหรับตารางที่เริ่มจาก 1 และมีองค์ประกอบสามรายการ #t จะมีค่าเป็น 3 รายการสุดท้ายจะอยู่ที่ดัชนี #t

local list = {"a", "b", "c"}
print(#list)
print(list[#list])

ความยาวในลูป

ใช้ #t เป็นขอบเขตบนของลูป for แบบตัวเลขเพื่อเข้าถึงทุกดัชนี

เนื่องจากลำดับเริ่มนับจาก 1 ช่วงจึงเป็น 1, #t

local nums = {10, 20, 30, 40}
for i = 1, #nums do
  print(i, nums[i])
end

ตารางว่าง

ลำดับว่างจะมีความยาวเป็น 0

ดังนั้น #t == 0 จึงเป็นวิธีตรวจสอบอย่างรวดเร็วว่ารายการมีองค์ประกอบหรือไม่

local empty = {}
print(#empty)
if #empty == 0 then
  print("list is empty")
end

ความยาวหลังการเปลี่ยนแปลง

เมื่อคุณเพิ่มหรือนำรายการออกด้วยฟังก์ชันของตาราง ค่า # จะอัปเดตตามนั้น

insert จะเพิ่มจำนวน ส่วน remove จะลดจำนวน

local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)

ช่องว่างทำให้ความยาวใช้ไม่ได้

# จะเชื่อถือได้เฉพาะกับลำดับที่ไม่มีช่องว่างเท่านั้น ช่องว่างอาจทำให้ผลลัพธ์ไม่ระบุแน่ชัด

ใช้ table.insert และ table.remove เพื่อให้ค่า # ยังคงเชื่อถือได้

local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)

การเรียงลำดับในตารางเดิม

table.sort(t) จะเรียงลำดับลำดับเดิมใหม่ โดยค่าเริ่มต้นจะเรียงจากน้อยไปมาก

ฟังก์ชันนี้เปลี่ยนแปลงตารางเดิม แทนที่จะคืนค่าตารางใหม่

local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])

การเรียงลำดับสตริง

โดยค่าเริ่มต้น สตริงจะถูกเรียงตามตัวอักษร โดยเปรียบเทียบทีละตัวอักษร

หลังการเรียงลำดับ ดัชนี 1 จะเก็บรายการแรกตามลำดับ

local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])

ลำดับจากมากไปน้อย

ส่งฟังก์ชันเปรียบเทียบเพื่อควบคุมลำดับ การคืนค่า a > b จะเรียงจากค่ามากไปหาค่าน้อย

ฟังก์ชันนี้จะตัดสินว่า a ควรอยู่ก่อน b หรือไม่

local nums = {3, 1, 4, 2}
table.sort(nums, function(a, b)
  return a > b
end)
print(nums[1], nums[2], nums[3], nums[4])

การเปรียบเทียบแบบกำหนดเอง

ตัวเปรียบเทียบช่วยให้คุณเรียงลำดับตามกฎใดก็ได้ เช่น เรียงตามความยาวของสตริงแทนการเรียงตามตัวอักษร

ในตัวอย่างด้านล่าง คำที่สั้นกว่าจะอยู่ก่อน

local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
  return #a < #b
end)
print(words[1], words[2], words[3])

ความยาวและการเรียงลำดับ

นำเครื่องมือมาทำงานร่วมกัน: เรียงลำดับรายการ แล้วอ่านค่าที่ปลายทั้งสองตามตำแหน่ง

หลังเรียงจากน้อยไปมาก ค่าต่ำสุดจะอยู่ที่ดัชนี 1 และค่าสูงสุดจะอยู่ที่ดัชนี #t

local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])

เรียงลำดับแล้ววนซ้ำ

ขั้นตอนต่อเนื่องที่พบบ่อยคือ เรียงลำดับลำดับก่อน แล้วใช้ ipairs วนดูเพื่อแสดงผลตามลำดับ

การเรียงลำดับจะเปลี่ยนตารางเดิมที่เริ่มนับจาก 1 ดังนั้นการวนซ้ำจึงเป็นไปตามลำดับใหม่

local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
  print(i, s)
end

ตรวจสอบอย่างรวดเร็ว

ทบทวนว่าตัวดำเนินการหาความยาวให้ค่าใดแก่คุณ

สรุปทบทวน

คุณได้เรียนรู้ว่า #t จะนับรายการในลำดับที่ไม่มีช่องว่าง รายการสุดท้ายอยู่ที่ t[#t] และ table.sort จะเรียงลำดับข้อมูลในตารางเดิม โดยเรียงจากน้อยไปมากเป็นค่าเริ่มต้น หรือใช้ตัวเปรียบเทียบแบบกำหนดเองได้

เมื่อทำงานร่วมกับ insert, remove และ ipairs ตอนนี้คุณก็สามารถจัดการลำดับของ Lua ได้อย่างมั่นใจ

คำถามที่พบบ่อย

บทเรียน “ความยาวและการเรียงลำดับ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ความยาวและการเรียงลำดับ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Lua Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Lua Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ความยาวและการเรียงลำดับ”

นับและเรียงลำดับลำดับข้อมูล คุณปฏิบัติ Lua Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Lua Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Lua Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ความยาวและการเรียงลำดับ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Lua Academy นี้ได้ไหม

ได้ บทเรียน Lua Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. อาร์เรย์ในรูปตาราง
  2. เพิ่มและลบรายการ
  3. วนซ้ำด้วย ipairs
  4. ความยาวและการเรียงลำดับ
← กลับไปที่ Lua Academy