ขั้นตอนวิธี ของ การเรียงลำดับแบบผสาน

ขั้นตอนวิธีอาศัยหลักการแบ่งแยกและเอาชนะและการเวียนบังเกิด โดยมีรายละเอียดดังนี้

  1. (ขั้นตอนการแบ่ง) สมมติว่ามีข้อมูลอยู่ n ชุด
    1. ถ้ามีข้อมูลแค่ 1 ชุด นั่นคือข้อมูลนั้นเรียงลำดับแล้ว
    2. ถ้ามีข้อมูลมากกว่านั้น ให้แบ่งเป็นสองส่วน แล้วทำการเวียนบังเกิด
  2. (ขั้นตอนเอาชนะ) เมื่อถึงขั้นตอนนี้จะได้ข้อมูลสองส่วน (โดยที่แต่ละส่วนเรียงในส่วนของตัวเองเรียบร้อยแล้ว) ทำการรวมข้อมูลทั้งสองส่วนนั้นให้เป็นข้อมูลก้อนเดียวที่ทั้งก้อนนั้นเรียงลำดับแล้ว

ตัวอย่างการอิมพลิเมนต์ด้วยรหัสเทียม ทำการเรียงลำดับด้วยการโยนลิสต์ข้อมูลไปที่ฟังก์ชัน MergeSort ผลลัพธ์ที่ออกจากฟังก์ชันนั้นคือข้อมูลที่เรียงลำดับแล้ว

MergeSort (array Assss) {  if (A.size == 0) return A  mid = A.size / 2  AA = MergeSort(A[0..mid])  BB = MergeSort(A[mid..A.size])  return MergeSort_Merge(AA, BB)}MergeSort_Merge (array A, array B) {  C = new array  aa = 0  bb = 0  while (aa < A.size and bb < B.size) {    if (A[aa] < B[bb]) {      C[] = A[aa++]    } else if (A[aa] > B[bb]) {      C[] = B[bb++]    } else {       aa += 1      bb += 1    }  }  while (aa < A.size) C[] = A[aa++]  while (bb < B.size) C[] = B[bb++]  return C}

ใกล้เคียง

การเรียนรู้ของเครื่อง การเร่งปฏิกิริยา การเรืองแสงของบรรยากาศ การเร็นเดอร์ การเรียนรู้เชิงลึก การเรียน การเรียกชื่อสารเคมีตามระบบไอยูแพ็ก การเรียงลำดับแบบฟอง การเรียกยานพาหนะคืนของโตโยต้า พ.ศ. 2552−2553 การเร่งโดยอาศัยแอนติบอดี