19 Haziran 2018 Salı

Heap

Uygulama konusu: Min-Heap yapısına göre sıralı olmayan bir dizinin sıralanması işlemidir. 

def heapify(arr, n, i):
    en_buyuk = i  
    sol = 2 * i + 1     
    sag = 2 * i + 2     
    if sol < n and arr[i] < arr[sol]:
        en_buyuk = sol
    if sag < n and arr[en_buyuk] < arr[sag]:
        en_buyuk = sag
    if en_buyuk != i:
        arr[i],arr[en_buyuk] = arr[en_buyuk],arr[i]  
        heapify(arr, n, en_buyuk)
def heapSort(arr):
    n = len(arr)
    for i in range(n, -1, -1):
        heapify(arr, n, i)
    for i in range(n-1, 0, -1):
        arr[i], arr[0] = arr[0], arr[i]  
        heapify(arr, i, 0)
arr = [ 54,26,93,17]
heapSort(arr)
n = len(arr)
print ("Sıralı heap: ")
print(arr)

Hiç yorum yok:

Yorum Gönder