Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritma Analizi 8.1 Partially Ordered Trees (POT) Asagidaki ozellikleri saglayan binary tree ye partially ordered tree denir –Her bir node un priority.

Benzer bir sunumlar


... konulu sunumlar: "Algoritma Analizi 8.1 Partially Ordered Trees (POT) Asagidaki ozellikleri saglayan binary tree ye partially ordered tree denir –Her bir node un priority."— Sunum transkripti:

1 Algoritma Analizi 8.1 Partially Ordered Trees (POT) Asagidaki ozellikleri saglayan binary tree ye partially ordered tree denir –Her bir node un priority si var. bu priority node gosterdigi recordun bir componenti olabilir –Node yerlestirilen record un priority si en az bu node un child larina yerlestirilen record larin priority leri kadardir

2 Algoritma Analizi Ornek: 10 node a sahip bir POT

3 Algoritma Analizi 8.3 Balanced POT ve Heap POT asagidaki ozellige sahipse balanced ismini alir –En dipdeki level haric diger level daki tum node lar mevcut ve en dipdeki yaprak node lar mumkun olduguca en solda Eger binary tree de n node varsa yapraklarin koke olan uzunlugu log 2 n den buyuk olamaz Balanced POT ler heap diye bilinen array data structure i kullanilarak gerceklenebilir –Priority queue gerceklenmesinde kullanilir

4 Algoritma Analizi 8.4 Heap Heap indeksleri ozel olarak yorumlanan ve asagidaki ozelliklere sahip array a denir –root node : A[1] –A[ i ] nin left child i A[ 2*i ] –A[ i ] nin right child i A[ 2*i +1] –A[ i ] >= max(A[2*i], A[2*i +1]

5 Algoritma Analizi

6 Algoritma Analizi 8.6 Ornek: Heap

7 Algoritma Analizi 8.7 void swap(int A[], int i, int j) { int temp; temp = A[i]; A[i] = A[j]; A[j] = temp; } void bubleUp( int A[], int i) { if ( i>1 && A[i] > A[i/2]) { swap(A,i,i/2); bubleup(A,i/2); }

8 Algoritma Analizi 8.8 Priority queue operation insert void insert(int A[], int x, int *pn) { (*pn)++; A[*pn] = x; bubleUp(A, *pn); } Heap uzerinde gerceklestirilen insert operation

9 Algoritma Analizi

10 Algoritma Analizi

11 Algoritma Analizi 8.11 void bubleDown(int A[], int i, int n) { int child; child = 2*i; if(child A[child]) ++child; if(child <= n && A[i] < A[child]) { swap(A, i, child); bubleDown(A,child,n); } void deletemax(int A[], int *pn) { swap(A,1, *pn); --(*pn); bubleDown(A,1,*pn); }

12 Algoritma Analizi Ornek: deletemax

13 Algoritma Analizi Ornek: deletemax Yeni heap

14 Algoritma Analizi Ornek: deletemax

15 Algoritma Analizi Ornek: deletemax

16 Algoritma Analizi Ornek: deletemax

17 Algoritma Analizi 8.17 Heapify Algorithm Heap ozelligi olmayan Array i heap haline getirir void heapify(int A[],int n) { int i; for( i=n/2; i>=1; i--) bubleDown(A,i,n); }

18 Algoritma Analizi 8.18 Ornek: Heapifying

19 Algoritma Analizi 8.19 Ornek: Heapifying

20 Algoritma Analizi 8.20 Ornek: Heapifying

21 Algoritma Analizi 8.21 Ornek: Heapifying

22 Algoritma Analizi 8.22 Ornek: Heapifying

23 Algoritma Analizi 8.23 Ornek: Heapifying

24 Algoritma Analizi 8.24 Ornek: Heapifying

25 Algoritma Analizi 8.25 Ornek: Heapifying

26 Algoritma Analizi 8.26 Ornek: Heapifying

27 Algoritma Analizi 8.27 Ornek: Heapifying

28 Algoritma Analizi 8.28 Ornek: Heapifying

29 Algoritma Analizi 8.29 Ornek: Heapifying

30 Algoritma Analizi 8.30 Ornek: Heapifying

31 Algoritma Analizi 8.31 Ornek: Heapifying

32 Algoritma Analizi 8.32 Ornek: Heapifying

33 Algoritma Analizi 8.33 void heapsort(int A, n) { int i; heapify(A,n); i = n; while(i >1) deletemax(A, &i); } O(n) O(nlogn)

34 Algoritma Analizi 8.34 Algorithm Analysis In-place algoritma Stable degil Heapify: O(n) Insert: O(logn) Heap sort: O(nlogn)


"Algoritma Analizi 8.1 Partially Ordered Trees (POT) Asagidaki ozellikleri saglayan binary tree ye partially ordered tree denir –Her bir node un priority." indir ppt

Benzer bir sunumlar


Google Reklamları