บทที่ 7 การเรียงลำดับภายนอก External sorting
ความนำ การเรียงลำดับข้อมูลเป็นเรื่องปกติในงานคอมพิวเตอร์ที่ทำกันอยู่เป็นประจำ เช่นการเรียงแฟ้มรายการเพื่อนำไปปรับปรุงแฟ้มข้อมูลหลัก การจัดพิมพ์รายงาน ดังนั้นการเลือกใช้วิธีการเรียงลำดับแฟ้มข้อมูลจึงมีความจำเป็นต่อระบบงานคอมพิวเตอร์
การที่ศึกษาในบทที่ 6 การเรียงลำดับภายในข้อมูลจะต้องทำพร้อมกันในหน่วยความจำ ดังนั้นจึงไม่เหมาะกับแฟ้มข้อมูลขนาดใหญ่ ในหัวข้อนี้จะกล่าวถึงการเรียงข้อมูลจำนวนมากๆ Sort sublist 1 Merge list (Record 1-1000) MERGE Sort sublist 2 (sort list record1-2000) (Record 1001-2000)
เทคนิคการเรียงลำดับข้อมูลภายนอกเกือบทุกวิธีใช้หลักการดังนี้ แบ่งระเบียนที่ต้องเรียงลำดับออกเป็นกลุ่ม และจัดการเรียงลำดับภายในกับระเบียนกลุ่มย่อยเหล่านั้นโดยเก็บระเบียนส่วนย่อยนั้นอยู่ในลักษณะแฟ้มลำดับ จากนั้นจึงนำแฟ้มย่อยเหล่านั้นมาผสานกันเป็นแฟ้มเดียว หมายเหตุ แฟ้มย่อยที่เรียงลำดับแล้ว โดยผ่านวิธีการเรียงลำดับแบบภายในเรียกว่า run
การเรียงลำดับภายนอกมี 3 ขั้นตอน ดังนี้ Internal Sort phase เรียงลำดับภายใน Merge phase ช่วงการรวมการรัน Output phase คัดลอกแฟ้มไปไว้ในสื่อบันทึกข้อมูล การประเมินการเรียงลำดับภายในวัดจากจำนวนครั้งของการเปรียบเทียบ แต่การเรียงลำดับภายนอกวัดจากจำนวนครั้งในการถ่ายโอนข้อมูล
การผสานและการเรียงลำดับภายนอก มีหลายวิธีดังนี้ Natural merge Balanced merge Polyphase merge Cascade merge
1. Natural merge ผสานครั้งละ 2 input file เรียกว่า Two-way merge ถ้าผสานครั้งละ M input file เรียกว่า M-way merge Internal sort phase 6 record subfile @1000 record 6000 record
Marge phase (Two-way merge) ใช้เทปแม่เหล็ก 3 ม้วน เป็น Input file 2 ม้วน และOutput file 1 ม้วน รูปหน้า 132
Balanced merge ดีกว่า natural merge ซึ่งต้องใช้แฟ้ม M+1 file ในขณะที่ balanced merge ใช้ 2M file ในการเคลื่อนย้ายข้อมูลไปมา รูปหน้า 136
Polyphase merge เนื่องจากแบบ M-way balanced merge ในช่วงเวลาทำงานจะมีเทป 1 ม้วนที่ไม่ได้ใช้งาน เพื่อใช้เนื้อที่เทปอย่างเต็มที่จึงปรับมาใช้แบบ unbalanced merge หรือเรียกว่า Polyphase merge
ในช่วงการเรียงลำดับภายในของ M-way polyphase จะต้องกระจาย sorted run ไว้ใน M-1 input files นั่นคือ มีเทป 4 ม้วน ให้เป็น input tape 3 และ Output tape 1 ม้วน และช่วงการเรียงลำดับภายในจะได้ 17 sorted
Cascade Merge เป็นการพยายามลดจำนวนครั้งในการคัดลอกระเบียน
การผสานโดยใช้ Disk มีข้อจำกัดคือต้องใช้ tape อย่างน้อย 3 drives ถ้ามีมากกว่านี้จะทำให้ผสานเร็วขึ้น
แบบฝึกหัด 1.เขียนอธิบายหัวใจหลักการผสานของ 1.1 Natural merge 1.2 Balanced merge 1.3 Polyphase merge 1.4 Cascade merge