ผลต่างระหว่างรุ่นของ "ผู้ใช้:Phizaz/merge sort"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Phizaz (คุย | ส่วนร่วม)
หน้าใหม่: ในสาขาวิทยาการคอมพิวเตอร์ '''การเรียงลำดับแบบผสาน''' ({{Lang-en|Merge Sort}...
 
Phizaz (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัด 1:
ในสาขา[[วิทยาการคอมพิวเตอร์]] '''การเรียงลำดับแบบผสาน''' ({{Lang-en|Merge Sort}}) เป็นขั้นตอนวิธีใน[[ขั้นตอนวิธีการเรียงลำดับ|การเรียงลำดับ]]ที่อาศัยการเปรียบเทียบ และยังเป็นตัวอย่างขั้นตอนวิธีที่ใช้หลัก[[ขั้นตอนวิธีการแบ่งแยกและเอาชนะ|การแบ่งแยกและเอาชนะ]]ทำให้ชั้นตอนวิธีนี้มีประสิทธิภาพ O(n log n) ในการอิมพลิเมนต์เพื่อการใช้งานจริง ๆ นั้นสามารถทำได้ทั้งแบบบนลงล่าง (Top-down) และแบบล่างขึ้นบน (Bottom-up) อนึ่งในการอิมพลิเมนต์โดยทั่วไปแล้วการเรียงแบบนี้จะไม่ศูนย์เสียลำดับของข้อมูลที่มีค่าเท่ากัน นั่นคือเป็นการเรียงที่เสถียร '''การเรียงลำดับแบบผสาน''' ถูกเสนอขึ้นครั้งแรกโดย[[จอห์น ฟอน นอยมันน์]]ในปี ค.ศ. 1945
 
==ขั้นตอนวิธี==
ขั้นตอนวิธีอาศัยหลักการแบ่งแยกและเอาชนะและการเวียนบังเกิด โดยมีรายละเอียดดังนี้
# ''(ขั้นตอนการแบ่ง)'' สมมติว่ามีข้อมูลอยู่ n ชุด
## ถ้ามีข้อมูลแค่ 1 ชุด นั่นคือข้อมูลนั้นเรียงลำดับแล้ว
## ถ้ามีข้อมูลมากกว่านั้น ให้แบ่งเป็นสองส่วน แล้วทำ[[การเวียนบังเกิด]]
# ''(ขั้นตอนเอาชนะ)'' เมื่อถึงขั้นตอนนี้จะได้ข้อมูลสองส่วน (โดยที่แต่ละส่วนเรียงในส่วนของตัวเองเรียบร้อยแล้ว) ทำการรวมข้อมูลทั้งสองส่วนนั้นให้เป็นข้อมูลก้อนเดียวที่ทั้งก้อนนั้นเรียงลำดับแล้ว