Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritma Analizi 1 Sorting Methods –Basics of Sorting –Elementary Sorting Algorithms Selection sort Insertion sort Shellsort.

Benzer bir sunumlar


... konulu sunumlar: "Algoritma Analizi 1 Sorting Methods –Basics of Sorting –Elementary Sorting Algorithms Selection sort Insertion sort Shellsort."— Sunum transkripti:

1 Algoritma Analizi 1 Sorting Methods –Basics of Sorting –Elementary Sorting Algorithms Selection sort Insertion sort Shellsort

2 Algoritma Analizi 2 Sorting n record, R 1 … R n Her bir record R i icin –K i bir key Key ler arasinda ozellikleri asagida verilen bir iliski var –Trichotomy: Herhangi iki key a ve b icin a b iliskisinden biri dogru –Transitivity: For Herhangi uc key a,b, ve c icin, eger a Keyler uzerinde tanimli total ordering (linear ordering) Bir relation dir.

3 Algoritma Analizi 3 Basic Definitions Sorting: n tane record icin bir permutasyon P = ( p 1, …, p n ) bul oyleki keyler K p 1 < … < K p n kosulunu saglar. Permutation: {1,….,n} den kendine one- to-one bir fonksiyondur. n item nin n! Sayida degisik permutasyonu var. Rank: n tane key den olusan bir kolleksiyon icin, bir key in rank i o keyden once gelen key lerin sayisi. Yani rank( K j ) = |{ K i | K i < K j }|.

4 Algoritma Analizi 4 Terminology Internal ( file main memory de ve randomly erisilebilinir) vs. External (file secondary memory de & ve ancak sequentially erisilebilinir) Comparison-based sort: sadece key ler arasinda iliski kullanilarak gerceklenir, Stable sort: key leri ayni olan record larin original relative order u korunur. i.e. i < j & Kp i = Kp j  p i < p j Array-based (consective key ler consecutive memory location larina konur) vs. List-based sort (linked liste yontemiyle nonconsecutive locationlara konulmasi) In-place sort: (keyler icin degil) siralama icin extra sabit buyuklukte bir alana ihtiyac duymaz.

5 Algoritma Analizi 5 Sorting Categories Sorting by Insertion insertion sort, shellsort Sorting by Exchange bubble sort, quicksort Sorting by Selection selection sort, heapsort Sorting by Merging merge sort Sorting by Distribution radix sort

6 Algoritma Analizi 6 Elementary Sorting Methods Siralamanin temel mekanizmasi kolayca anlasilir Kucuk file lar icin uygun Elle siralamasi kolay (hemen hemen sirali) olan file larin siralamalarinda etkili Daha guclu metodlarin performanslarinin artirilmasinda kullanilabilirler

7 Algoritma Analizi 7 Selection Sort 1. for i = n downto 2 do 2. max  i 3. for j = i - 1 downto 1 do 4. if A[max] < A[j] then 5. max  j 6. t  A[max] 7. A[max]  A[i] 8. A[i]  t

8 Algoritma Analizi 8 18 10 40 603226632 5898 50 5 10 671 18 Ornek: selection sort 18 10 40 603226632 5818 50 5 10 671 98 18 10 40 60322632 5818 50 5 10 6671 98 18 10 40 10322632 5818 50 5 60 6671 98 18 10 40 10322632 518 50 58 60 6671 98 18 10 18 10322632 540 50 58 60 6671 98 18 10 18 1032265 3240 50 58 60 6671 98 18 10 18 1035622 3240 50 58 60 6671 98

9 Algoritma Analizi 9 Algorithm Analysis In-place sort Not stable Butun durumlarda karsilastirma sayisi  (n 2 ) dir. Bir dizi degisikle performansi artirilabilinir (heap sort)

10 Algoritma Analizi 10 Insertion Sort 1. for j = 2 to n do 2. key  A[j] 3. i  j - 1 4. while i > 0 and key < A[i] 5. A[i+1]  A[i] 6. i  i - 1 7. A[i+1]  key

11 Algoritma Analizi 11 18 10 40 603226632 5898 50 5 10 671 18 Ornek: insertion sort 10 18 40 603226632 5898 50 5 10 671 18 3 10 18 4060226632 5898 50 5 10 671 18 3 10 18 2240606632 5898 50 5 10 671 18 3 10 18 2232406066 5898 50 5 10 671 18 3 10 18 2232405860 6698 50 5 10 671 18 3 10 18 2232405058 6066 98 5 10 671 18 3 5 10 1822324050 5860 66 98 10 671 18

12 Algoritma Analizi 12 Algorithm Analysis In-place sort Stable Eger A sirali ise:  ( n ) comparisons (kiyaslama) Eger A ters sirali ise:  ( n 2 ) comparisons Eger A randomly sirali ise:  ( n 2 ) comparisons

13 Algoritma Analizi 13 Worst Case Analysis A[i] yi insert (yerlestirme) ederken, maksimum karsilastirma sayisi (i-1) dir. Dolayisiyle, karsilastirmalarin sayisi C wc (n)   i = 2 to n (i -1)   j = 1 to n-1 j = n(n-1)/2 =  (n 2 )

14 Algoritma Analizi 14 Average Case Analysis A[i] yi yerine yerlestirdigimizi goz onune alalim. Bu yerlestirme islemini i farkli yere yapabiliriz. Butun olasiliklarin esit ve degerinin 1 / i oldugunu kabul edersek. Bu durumda A[i] yi yerine yerlestirmek icin ortalama karsilastirma sayisi:  j = 1 to i-1 (1/i * j ) + 1/i * (i - 1) = (i+1)/2 - 1/i Tum key lerin icin gerekli karsilastirmalari toplarsak, asagidakini bulabiliriz: C avg (n) =  i = 2 to n [(i+1)/2 - 1/i] = n 2 /4 + 3n/4 - 1 - ln n =  (n 2 ) Dolayisiyle, T avg (n) =  (n 2 )

15 Algoritma Analizi 15 Analysis of Inversions in Permutation Worst Case: n ( n-1)/2 inversions Average Case: n(n-1)/4.

16 Algoritma Analizi 16 18 10 3 976226 Inversion sayisi = 4 + 3 + 0 + 1 + 2 + 1 = 11 76 22 18 10963 Inversion sayisi = 6 + 5 + 4 + 3 + 2 + 1 = 21 3 6 9 10182276 Inversion sayisi = 0

17 Algoritma Analizi 17 Theorem Key leri karsilastirma suretiyle siralama yapan ve her bir karsilastirma sonunda en fazla bir inversion u yok edebilen bir algoritma worst case durumda en az n(n-1)/2 karsilastirma yapmak zorunda, ve average durumda ise n(n-1)/4 karsilastirma yapmak zorundadir  Eger  ( n 2 ) den daha iyi bir algoritma elde etmek istiyorsak her bir karsilastirmada sabit sayida inversion lardan daha fazlasini yok etmeliyiz.

18 Algoritma Analizi 18 Insertion Sort to Shellsort Shellsort insertion sort un turevidir. Birbirinden cok uzakta olan elementlerin kendi aralarinda yerdegistirmesine izin verdiginden daha hizlidir. Siralanacak dizinin her h inci elementini gozonune almak sirali diziye yol acar( h -sorted). Bir h -sorted dizi birbirinden bagimsiz h tane sirali dizilerin interleaved olmasindan olusur. Bazi buyuk h degerleri icin h -sorting yapma, daha kucuk h degerleri h -sorting yapmayi kolaylastirir. Bunu h =1 oluncaya kadar yapmak dizinin sirali olmasini saglar.

19 Algoritma Analizi 19 Shellsort Interleaving suretiyle her bir kiyaslamada birden fazla inversion yok edilebilir, dolayisiyle h kuculdukce dizinin hemen hemen sirali oldugunu goruruz.

20 Algoritma Analizi 20 Shellsort 1. h  1 2. while h  n { 3. h  3h + 1 4. } 5. repeat 6. h  h/3 7. for i = h to n do { 8. key  A[i] 9. j  i 10. while key < A[j - h] { 11. A[j]  A[j - h] 12. j  j - h 13. if j < h then break 14. } 15. A[j]  key 16. } 17. until h  1 n: dizinin eleman sayisi. dizinin ilk index i 0 dir.

21 Algoritma Analizi 21 18 10 40 603226632 5898 50 5 10 671 18 6 10 40 603226632 5898 50 5 10 1871 18 6 10 18 603226632 5898 50 5 10 1871 40 3 10 18 326226660 5898 50 5 10 1871 40 3 10 18 326225060 5898 66 5 10 1871 40 3 10 18 56225032 5898 66 60 10 1871 40 3 10 18 56225032 1098 66 60 58 1871 40 3 10 18 56 6632 1022 50 60 58 9871 40 3 10 18 56 6632 1022 50 40 58 9871 60 ornek

22 Algoritma Analizi 22 3 5 10 186 6632 1022 50 40 58 9871 60 3 10 18 56 6632 1022 50 40 58 9871 60 3 5 6 1018 6632 1022 50 40 58 9871 60 3 5 6 1018 3266 1022 50 40 58 9871 60 3 5 6 10 18 32 6622 50 40 58 9871 60 3 5 6 10 18 22 3266 50 40 58 9871 60 3 5 6 10 18 22 3250 66 40 58 9871 60 3 5 6 10 18 22 3240 50 66 58 9871 60 3 5 6 10 18 22 3240 50 58 66 9871 60 3 5 6 10 18 22 3240 50 58 66 7198 60 3 5 6 10 18 22 3240 50 58 60 6671 98

23 Algoritma Analizi 23 Algorithm Analysis In-place sort Not stable Algoritmanin davranisi h artisina bagli & algoritmanin analizi zordur h k = 2 k - 1 icin, T(n) =  (n 3/2 )


"Algoritma Analizi 1 Sorting Methods –Basics of Sorting –Elementary Sorting Algorithms Selection sort Insertion sort Shellsort." indir ppt

Benzer bir sunumlar


Google Reklamları