fixmint
TH

ทำไม 10 ถึงมาก่อน 2 และการเรียงลำดับแบบธรรมชาติแก้ปัญหานี้อย่างไร

โดย · · อัปเดตเมื่อ 8 พฤศจิกายน 2026 · อ่าน 4 นาที

การเรียงลำดับตัวอักษรแบบปกติจะเทียบอักขระตัวแรกของแต่ละรายการ จากนั้นตัวที่สอง และต่อไปเรื่อย ๆ อักขระตัวแรกของ "10" คือ 1 และ 1 มาก่อน 2 "10" จึงมาก่อน "2" ลำดับนี้ถูกต้องสำหรับข้อความ แต่ผิดสำหรับตัวเลข การเรียงลำดับแบบธรรมชาติ (natural sorting) จะอ่านตัวเลขที่ต่อกันเป็นจำนวนเต็มก้อนเดียว ดังนั้น 2 จึงมาก่อน 10 และการเติมเลข 0 นำหน้า เช่น 02 และ 10 ก็แก้ปัญหาเดียวกันได้ที่ชื่อไฟล์เอง

เรียงลำดับบรรทัดรายการเรียงผิดลำดับใช้ฟรี

ทำไมคอมพิวเตอร์ทำงานแบบนี้

การเรียงลำดับแบบปกติจะเทียบข้อความทีละตำแหน่งจากซ้ายไปขวา โดยใช้รหัสอักขระหรือลำดับการเรียงของภาษานั้น และหยุดเมื่อเจอความต่างตัวแรก วิธีนี้เหมาะกับคำ เช่น "apple" มาก่อน "banana" เพราะตัวอักษรแรกต่างกัน

แต่วิธีนี้ใช้กับตัวเลขไม่ได้ ลองดูชื่อไฟล์สามชื่อ คือ file-2, file-9 และ file-10 ในคู่สุดท้าย การเทียบจะไปถึงตำแหน่งที่ 6 ซึ่งเป็นอักขระ 1 และ 9 เลข 1 น้อยกว่า file-10 จึงมาก่อน ลำดับแบบปกติคือ file-10, file-2, file-9 ซึ่งถูกต้องสำหรับตัวอักษร แต่ผิดสำหรับคนที่ต้องการอ่านจำนวน

การเรียงลำดับแบบธรรมชาติ

การเรียงลำดับแบบธรรมชาติ หรือที่เรียกว่าการเรียงแบบตัวเลข (numeric) หรือแบบมนุษย์ (human sorting) จะแยกแต่ละข้อความเป็นกลุ่มตัวเลขและกลุ่มอักขระอื่น โดยเทียบกลุ่มตัวเลขตามค่าของจำนวน และเทียบส่วนที่เหลือเป็นข้อความ ดังนั้น 2 จึงมาก่อน 10 และ file-2 มาก่อน file-10 โปรแกรมจัดการไฟล์หลายตัวใช้การเรียงแบบนี้เป็นค่าเริ่มต้น จึงเป็นเหตุผลที่โฟลเดอร์รูปภาพที่มีเลขกำกับมักแสดงลำดับถูกต้องในโปรแกรมเหล่านั้น

เรียงลำดับรายการใน fixmint

  1. วางรายการลงในเครื่องมือเรียงลำดับ โดยแต่ละรายการอยู่คนละบรรทัด
  2. ในส่วนลำดับ (Order) ให้เลือกตัวเลข แทน A→Z
A→Z แบบปกติตัวเลข
item1, item10, item2item1, item2, item10

ลำดับแบบตัวเลขจะอ่านตัวเลขเป็นจำนวนเต็ม ลบบรรทัดที่ซ้ำกัน ก็มีลำดับแบบตัวเลขให้เลือกเช่นกัน โดยจะลบรายการซ้ำก่อนแล้วจึงเรียง ผลลัพธ์จึงไม่ซ้ำและเรียงตามลำดับตัวเลข

การเติมเลข 0 นำหน้า: อีกวิธีแก้

เมื่อคุณตั้งชื่อไฟล์เอง ให้ตัวเลขทุกตัวมีความยาวเท่ากัน เช่น 01, 02 ไปจนถึง 10 หรือ 001 ถึง 100 การเรียงแบบปกติจะให้ลำดับที่ถูกต้องทุกที่ รวมถึงในโปรแกรมที่ไม่มีการเรียงแบบธรรมชาติ การเติมเลขยังช่วยรักษาลำดับเมื่อรายการถูกส่งออกจากเครื่องของคุณ เพราะชื่อไฟล์บรรจุลำดับไว้ในตัวเองแล้ว วิธีนี้ได้ผลเพราะเมื่อความยาวเท่ากัน การเทียบทีละอักขระจะให้ผลตรงกับลำดับของตัวเลข ความยาวต้องพอสำหรับเลขที่มากที่สุด ระบบสามหลักรองรับได้ถึง 999 ดังนั้นไฟล์ชื่อ 1000 จะไปอยู่ระหว่าง 100 กับ 101 และทำให้ลำดับผิด เมื่อรายการยาวเกินความกว้างที่กำหนด ให้เติมเลขทุกตัวให้ได้ความยาวที่กว้างขึ้น

ใช้วิธีนี้กับไฟล์ใหม่ และเปลี่ยนชื่อไฟล์เดิมเป็นชุดโดยเพิ่มเลข 0 นำหน้า

จุดที่การเรียงแบบปกติมักปรากฏ

ชื่อที่มีเลขกำกับพบได้ทุกที่ เช่น รูปที่ส่งออกเป็น IMG_1 ถึง IMG_120 บทที่ชื่อ Chapter 1 ถึง Chapter 30 รายการเพลง เลขที่ใบแจ้งหนี้ และเวอร์ชันของซอฟต์แวร์ ทุกอย่างเหล่านี้อาจดูผิดหลังการเรียงแบบปกติ เพราะหลักแรกเป็นตัวกำหนดตำแหน่ง Chapter 10 จึงไปอยู่ติดกับ Chapter 1 และ Chapter 2 ไปอยู่ใกล้ท้ายรายการ

ป้ายกำกับที่มีตัวอักษรก็เป็นแบบเดียวกัน Part 2a, Part 2b และ Part 10 จะเรียงตามลำดับนั้นภายใต้การเรียงแบบธรรมชาติ เพราะเทียบตัวเลขก่อน และใช้ตัวอักษรเพื่อแยกเฉพาะรายการที่มีเลขเท่ากัน ส่วนการเรียงแบบปกติจะวาง Part 10 ไว้ก่อน Part 2a

วันที่ต้องระวัง ในการเรียงแบบธรรมชาติ วันที่ที่เขียนวันก่อนเช่น 4/11/2026 และ 12/01/2026 จะเทียบวันก่อน ทำให้ 4/11 มาก่อน 12/01 ทั้งที่ 12 มกราคม เกิดก่อนในปี วันที่ที่เขียนปีก่อน เช่น 2026-11-04 จะเรียงถูกต้องเป็นข้อความธรรมดา ดังนั้นให้ใช้รูปแบบนี้เมื่อรายการต้องเรียงตามวันที่

ตรวจผลลัพธ์หลังการเรียง

ตรวจจุดรอยต่อ ซึ่งเป็นจุดที่การเรียงแบบปกติผิดบ่อยที่สุด ได้แก่การเปลี่ยนจาก 9 ไป 10 และจาก 99 ไป 100 เมื่อเรียงแบบตัวเลข จุดเหล่านี้จะเรียงถูกต้อง หากรายการผสมระหว่างเลขที่เติม 0 กับเลขที่ไม่เติม ให้ดูจุดเหล่านี้ก่อน เพราะความไม่สม่ำเสมอจะปรากฏตรงนั้น

เลือกลำดับอย่างตั้งใจ

ใช้ A ถึง Z กับคำ ชื่อ และหัวข้อ ที่ตัวอักษรเป็นตัวกำหนดความหมาย ใช้ตัวเลขกับรายการที่ขึ้นต้นด้วยจำนวน หน้า บท หรือเวอร์ชัน ใช้ความยาวเมื่ออยากให้รายการสั้นที่สุดขึ้นก่อน สุ่มลำดับใช้สำหรับเลือกลำดับแบบสุ่ม และจะได้ผลต่างกันทุกครั้งที่กด ส่วนกฎเบื้องหลังการเรียงตัวอักษรแบบปกติ ดูได้ที่วิธีเรียงลำดับรายการตามตัวอักษร

กรณีพิเศษ

  • บรรทัดที่ผสมกัน การเรียงแบบธรรมชาติจะเทียบทั้งบรรทัดจากซ้ายไปขวา ในรายการที่ขึ้นต้นด้วยชื่อ ชื่อจะกำหนดลำดับก่อน ดังนั้น "Bob 1" จะมาหลัง "Ada 10" แม้ 1 จะน้อยกว่า 10
  • ความกว้างที่ไม่เท่ากัน เลขที่เติม 0 และไม่เติม 0 ในรายการเดียวกันอาจถูกเทียบว่าเท่ากันในการเรียงแบบธรรมชาติ ลำดับจึงขึ้นอยู่กับข้อมูลที่ป้อน ควรเลือกความกว้างเพียงแบบเดียวสำหรับแต่ละรายการ
  • ทศนิยม การเรียงแบบธรรมชาติจะอ่าน 1.9 เป็น 1 แล้วตามด้วย 9 และอ่าน 1.10 เป็น 1 แล้วตามด้วย 10 ดังนั้น 1.9 จึงมาก่อน วิธีนี้เหมาะกับหมายเลขเวอร์ชัน ซึ่ง 1.10 เป็นรุ่นที่ใหม่กว่า แต่สำหรับค่าทศนิยม เช่น ราคา 1.10 น้อยกว่า 1.9 ดังนั้นลำดับแบบธรรมชาติจึงผิด ให้เติมทศนิยมให้มีจำนวนตำแหน่งเท่ากัน เช่น 1.10 และ 1.90
  • ตัวพิมพ์ การเรียงตามค่าเริ่มต้นจะถือว่า Apple และ apple เป็นสิ่งเดียวกัน จึงจัดให้อยู่ด้วยกันตามลำดับที่วางลงไป การแยกตัวพิมพ์ใหญ่-เล็ก (Case-sensitive) จะเปลี่ยนสิ่งนี้

แปลจาก ฉบับภาษาอังกฤษ ด้วยความช่วยเหลือของ AI

ความคิดเห็น

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

    คะแนนของคุณ (ไม่บังคับ)

    อีเมลของคุณจะไม่ถูกแสดงหรือเก็บไว้

    ปกของ How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 หน้าว่าด้วยข้อได้เปรียบของมนุษย์ ด้านเศรษฐกิจ และด้านกลยุทธ์ ที่ยังคงหายากแม้ AI จะทำงานด้านการคิดได้เกือบทั้งหมด

    $3.84ซื้อบน Gumroadฉบับภาษาอังกฤษ