ฮีปทวิภาค

ฮีปทวิภาค () เป็นโครงสร้างข้อมูลฮีปที่อยู่ในรูปแบบของต้นไม้แบบทวิภาค มักถูกใช้เพื่อจัดแถวคอยลำดับความสำคัญ


 Min Heap 
Min heap จัดเรียงในรูปแบบของ tree เป็นการจัดลำดับจากน้อยไปมากโดยใส่ฝั่งซ้ายไปขวา

 Max Heap 
Max heap จัดเรียงในรูปแบบของ tree เป็นการจัดลำดับจากมากไปน้อยโดยใส่ฝั่งซ้ายไปขวา

 Coding Python 
def heapify(array, n, i):
    largest = i
    l = 2 * i + 1
    r = 2 * i + 2

    if l < n and array[i] < array[l]:
        largest = l

    if r < n and array[largest] < array[r]:
        largest = r

    if largest != i:
        array[i],array[largest] = array[largest],array[i]
        heapify(array, n, largest)

def heapSort(array):
    n = len(array)
    for i in range(n, -1, -1):
        heapify(array, n, i)
    for i in range(n-1, 0, -1):
        array[i],array[0] = array[0],array[i]
        heapify(array, i, 0)
    return array

 อ้างอิง 

หมวดหมู่:ต้นไม้ (โครงสร้างข้อมูล)