Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
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 Algoritma Analizi
2
Ornek: 10 node a sahip bir POT
18 18 16 9 7 1 9 3 7 5 Algoritma Analizi
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 log2n den buyuk olamaz Balanced POT ler heap diye bilinen array data structure i kullanilarak gerceklenebilir Priority queue gerceklenmesinde kullanilir Algoritma Analizi
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] Algoritma Analizi
5
18 16 9 7 5 3 1 18 16 9 7 1 3 5 2 4 6 8 10 Algoritma Analizi
6
Ornek: Heap Algoritma Analizi
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); } Algoritma Analizi
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 Algoritma Analizi
9
18 16 9 7 5 3 1 13 11 18 16 9 7 1 3 5 2 4 6 8 10 Algoritma Analizi
10
18 16 9 13 5 3 7 1 7 11 18 16 9 13 1 3 7 5 2 4 6 8 10 Algoritma Analizi
11
void bubleDown(int A[], int i, int n) { int child; child = 2*i;
if(child < n && A[child+1] > 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); } Algoritma Analizi
12
Ornek: deletemax 18 18 16 9 7 1 9 3 7 5 Algoritma Analizi
13
Ornek: deletemax Yeni heap 5 18 16 9 7 1 9 3 7 18 Algoritma Analizi
14
Ornek: deletemax 18 5 16 9 7 1 9 3 7 18 Algoritma Analizi
15
Ornek: deletemax 18 9 16 5 7 1 9 3 7 18 Algoritma Analizi
16
Ornek: deletemax 18 9 16 7 7 1 9 3 5 18 9 16 7 1 3 5 18 2 4 6 8 10 Algoritma Analizi
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); } Algoritma Analizi
18
Ornek: Heapifying 5 56 40 1 7 3 89 36 67 7 56 40 1 36 67 3 89 5 2 4 6 8 9 10 Algoritma Analizi
19
Ornek: Heapifying 5 56 40 1 7 3 89 36 67 7 56 40 1 36 67 3 89 5 2 4 6 8 9 10 Algoritma Analizi
20
Ornek: Heapifying 5 56 40 7 1 3 89 36 67 7 56 40 5 36 67 3 89 1 2 4 6 8 9 10 Algoritma Analizi
21
Ornek: Heapifying 5 56 40 7 1 3 89 36 67 7 56 40 5 36 67 3 89 1 2 4 6 8 9 10 Algoritma Analizi
22
Ornek: Heapifying 5 56 89 7 1 3 40 36 67 7 56 89 5 36 67 3 40 1 2 4 6 8 9 10 Algoritma Analizi
23
Ornek: Heapifying 5 56 89 7 1 3 40 36 67 7 56 89 5 36 67 3 40 1 2 4 6 8 9 10 Algoritma Analizi
24
Ornek: Heapifying 5 67 89 7 1 3 40 36 56 7 67 89 5 36 56 3 40 1 2 4 6 8 9 10 Algoritma Analizi
25
Ornek: Heapifying 5 67 89 7 1 3 40 36 56 7 67 89 5 36 56 3 40 1 2 4 6 8 9 10 Algoritma Analizi
26
Ornek: Heapifying 5 67 7 89 1 3 40 36 56 89 67 7 5 36 56 3 40 1 2 4 6 8 9 10 Algoritma Analizi
27
Ornek: Heapifying 5 67 40 89 1 3 7 36 56 89 67 40 5 36 56 3 7 1 2 4 6 8 9 10 Algoritma Analizi
28
Ornek: Heapifying 5 67 40 89 1 3 7 36 56 89 67 40 5 36 56 3 7 1 2 4 6 8 9 10 Algoritma Analizi
29
Ornek: Heapifying 89 67 40 5 1 3 7 36 56 5 67 40 36 56 3 7 1 89 2 4 6 8 9 10 Algoritma Analizi
30
Ornek: Heapifying 89 67 5 40 1 3 7 36 56 40 67 5 36 56 3 7 1 89 2 4 6 8 9 10 Algoritma Analizi
31
Ornek: Heapifying 89 67 7 5 40 1 3 36 56 40 67 7 5 36 56 3 1 89 2 4 6 8 9 10 Algoritma Analizi
32
Ornek: Heapifying 89 67 7 5 40 1 3 36 56 40 67 7 5 36 56 3 1 89 2 4 6 8 9 10 Algoritma Analizi
33
void heapsort(int A, n) { int i; heapify(A,n); i = n; while(i >1)
deletemax(A, &i); } O(n) O(nlogn) Algoritma Analizi
34
Algorithm Analysis In-place algoritma Stable degil Heapify: O(n)
Insert: O(logn) Heap sort: O(nlogn) Algoritma Analizi
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.