Sorting Methods Basics of Sorting Elementary Sorting Algorithms

Slides:



Advertisements
Benzer bir sunumlar
Steganografi.
Advertisements

Yığınlama Sıralaması (Heap Sort)
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Özel Öğretim Yöntemleri Aktif Öğrenme Teknikleri
Yeni Saldırıya Karşı Koyabilen İki IFEA-M Modifikasyonu Alexander G. Chefranov Bilgisayar Mühendisliği Bölümü Doğu Akdeniz Üniversitesi.
ÖMYO Nesne Tabanlı Programlama-1
Comenius Okul Ortaklıkları
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
Veri Yapıları ve Algoritmalar dönem
Algoritmalar En kısa yollar I En kısa yolların özellikleri
YMT 222 SAYISAL ANALİZ (Bölüm 6a)
Lower Bounds for Sorting
Boyer-Moore Algoritması ve Analizi
ALIŞTIRMALAR - 1 Sunu 1 ve Sunu 2 İçeriği
Veri Yapıları ve Algoritmalar
YMT219: Veri Yapıları Ders Saatleri: Pazartesi 9:15-12, 17:30-20:15
HIZLI SIRALAMA ALGORİTMALARI(QUICK SORT)
YMT 222 SAYISAL ANALİZ (Bölüm 5)
Partially Ordered Trees (POT)
Bu proje Avrupa Birliği ve Türkiye Cumhuriyeti tarafından finanse edilmektedir. Mesleki ve Teknik Eğitimin Kalitesinin Geliştirilmesi Projesi Improving.
Bu proje Avrupa Birliği ve Türkiye Cumhuriyeti tarafından finanse edilmektedir. House of Lifelong Learning and Quality Assurance Thomas Gruber German Reference.
Veri Yapıları.
Sistem Belirli bir ya da daha fazla amaç (goal) için bir araya getirilmiş fiziksel ya da kavramsal bileşenlerden oluşan bir bütündür.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritmalar ve Programlama I Ders 8:DİZİ (VEKTÖR) KAVRAMI
Ödev-4 SPN Hazırlayan:Emin BORANDAĞ. Emin Kullanıcı Adı: Eminb Şifre:Deneme Kullanıcı Adı:s>!~fdfjsdjfjdsfkld Şifre:djfksdjfkldsfjdkl.
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
YILDIZ TEKN İ K ÜN İ VERS İ TES İ Mekatronik Mühendisli ğ i Proje Danışmanı: Destekleyen Kuruluş: İsim Soyisim Firma İsmi Dönem/Yıl Proje Özeti : İsim.
Sıralama. Sıralama, bir dizideki sayısal elemanların küçükten büyüğe veya büyükten küçüğe, sayısal olmayan bir dizideki elemanların ise A’ dan Z’ ye.
Chapter 7 Space and Time Tradeoffs Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi.
(PAT Tutorial CERN July 2013) PAT (PHYSICS ANALYSIS TOOLKIT)
ERAY ÖZDEMİR. AgricultureAgriculture Financial integration system CommerceCommerce IndustryIndustry Bruksel.
Algoritmalar II Ders 6 Açgözlü Algoritmalar.
0-1 Sırt Çantası Problemi
FİZ TİTTREŞİMLER VE DALGALAR
Algoritmalar II Ders 1: Alan zaman takası yöntemi.
Insertion Sort Fikir: Oyun kartlarını sıralamaya benzer.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
60x90 cm Title of the congress paper Author(s) Name Surname Özet
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
M.E. 4 N./H.E.P. Perşembe Toplantısı yontembilimsel_hatirlatma
Kümeleme ve Regresyon Problemleri için Kolektif Öğrenme
İleri Algoritma Analizi
İleri Algoritma Analizi
İleri Algoritma Analizi
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
İleri Algoritma Analizi
Prof. Dr. Şahin EMRAH Algoritmalar I
Ahmet Cevahir ÇINAR Mustafa Servet KIRAN
60x90 cm Title of the congress paper Author(s) Name Surname Özet
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Veri Yapıları ve Algoritmalar
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar II Ders 16 Prim algoritması.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
İleri Algoritma Analizi
Karabük Üniversitesi Mühendislik Fakültesi Makine Mühendisliği Bölümü
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Algoritmalar II Ders 16 Prim algoritması.
Çizge Algoritmalari 10. Ders.
Bölüm 5 Azalt ve yönet (Decrease-and-Conquer)
Introduction to Algorithms (2nd edition)
Sunum transkripti:

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

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

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

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

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

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

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 Algoritma Analizi

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

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

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 Algoritma Analizi

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

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

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

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/4 - 1 - 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

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

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

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

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

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

Shellsort 1. h  1 2. while h  n { 3. h  3h + 1 4. } 5. repeat 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. Algoritma Analizi

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

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

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