Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Sorting Methods Basics of Sorting Elementary Sorting Algorithms

Benzer bir sunumlar


... konulu sunumlar: "Sorting Methods Basics of Sorting Elementary Sorting Algorithms"— Sunum transkripti:

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

2 Sorting n record, R1 … Rn Her bir record Ri icin
Ki bir key Key ler arasinda ozellikleri asagida verilen bir iliski var Trichotomy: Herhangi iki key a ve b icin a<b, a=b, veya a>b iliskisinden biri dogru Transitivity: For Herhangi uc key a,b, ve c icin, eger a<b ve b<c ise a<c dir > Keyler uzerinde tanimli total ordering (linear ordering) Bir relation dir. Algoritma Analizi

3 Basic Definitions Sorting: n tane record icin bir permutasyon P = (p1, … , pn) bul oyleki keyler Kp1 < … < Kpn 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(Kj) = |{Ki| Ki < Kj}|. 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 & Kpi = Kpj  pi < pj 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. 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 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 Algoritma Analizi

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

8 Ornek: selection sort Algoritma Analizi 18 10 40 60 3 22 66 32 58 98
50 5 6 71 18 10 40 60 3 22 66 32 58 50 5 6 71 98 18 10 40 60 3 22 6 32 58 50 5 66 71 98 18 10 40 3 22 6 32 58 50 5 60 66 71 98 18 10 40 3 22 6 32 5 50 58 60 66 71 98 18 10 3 22 6 32 5 40 50 58 60 66 71 98 18 10 3 22 6 5 32 40 50 58 60 66 71 98 18 10 3 5 6 22 32 40 50 58 60 66 71 98 Algoritma Analizi

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

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

11 Ornek: insertion sort Algoritma Analizi 18 10 40 60 3 22 66 32 58 98
50 5 6 71 10 18 40 60 3 22 66 32 58 98 50 5 6 71 3 10 18 40 60 22 66 32 58 98 50 5 6 71 3 10 18 22 40 60 66 32 58 98 50 5 6 71 3 10 18 22 32 40 60 66 58 98 50 5 6 71 3 10 18 22 32 40 58 60 66 98 50 5 6 71 3 10 18 22 32 40 50 58 60 66 98 5 6 71 3 5 10 18 22 32 40 50 58 60 66 98 6 71 Algoritma Analizi

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

13 Worst Case Analysis Cwc(n)  i = 2 to n (i -1)
A[i] yi insert (yerlestirme) ederken, maksimum karsilastirma sayisi (i-1) dir. Dolayisiyle, karsilastirmalarin sayisi Cwc(n)  i = 2 to n (i -1)  j = 1 to n-1 j = n(n-1)/2 = (n2) 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: Cavg(n) =  i = 2 to n [(i+1)/2 - 1/i] = n2/4 + 3n/ ln n = (n2 ) Dolayisiyle, Tavg(n) = (n2 ) If it’s in slot 1 or slot 2, it still has to do i-1 comparisons. Algoritma Analizi

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

16 Inversion sayisi = 4 + 3 + 0 + 1 + 2 + 1 = 11
18 10 3 9 76 22 6 Inversion sayisi = = 11 76 22 18 10 9 6 3 Inversion sayisi = = 21 3 6 9 10 18 22 76 Inversion sayisi = 0 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 (n2) den daha iyi bir algoritma elde etmek istiyorsak her bir karsilastirmada sabit sayida inversion lardan daha fazlasini yok etmeliyiz. 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. Algoritma Analizi

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

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

21 ornek Algoritma Analizi 18 10 40 60 3 22 66 32 58 98 50 5 6 71 6 10 40

22 3 10 18 5 6 66 32 22 50 40 58 98 71 60 3 5 10 18 6 66 32 22 50 40 58 98 71 60 3 5 6 10 18 66 32 22 50 40 58 98 71 60 3 5 6 10 18 32 66 22 50 40 58 98 71 60 3 5 6 10 18 32 66 22 50 40 58 98 71 60 3 5 6 10 18 22 32 66 50 40 58 98 71 60 3 5 6 10 18 22 32 50 66 40 58 98 71 60 3 5 6 10 18 22 32 40 50 66 58 98 71 60 3 5 6 10 18 22 32 40 50 58 66 98 71 60 3 5 6 10 18 22 32 40 50 58 66 71 98 60 3 5 6 10 18 22 32 40 50 58 60 66 71 98 Algoritma Analizi

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


"Sorting Methods Basics of Sorting Elementary Sorting Algorithms" indir ppt

Benzer bir sunumlar


Google Reklamları