Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

NİŞANTAŞI ÜNİVERSİTESİ

Benzer bir sunumlar


... konulu sunumlar: "NİŞANTAŞI ÜNİVERSİTESİ"— Sunum transkripti:

1 NİŞANTAŞI ÜNİVERSİTESİ
Veri Yapıları ve Algoritmalar DERS 9-10 NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr

2 YBLG202 Veri Yapıları ve Algoritmalar
DERS 9-10 SIRALAMA ALGORİTMALARI (SORTING ALGORITHMS) NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

3 Sıralama ALGORİTMALARI
Baloncuk Sıralama (Bubble Sort) Kabarcık sıralama basit bir sıralama algoritmasıdır. Bu sıralama algoritması, bitişik elemanların her çiftinin karşılaştırıldığı karşılaştırma tabanlı algoritmadır ve elemanlar Düzenli değillerse değiştirdiler. Bu algoritma, büyük veri kümeleri için uygun değildir çünkü ortalama ve en kötü durum karmaşıklığı O'dır (n2), burada n sayısıdır. bubbleSort( list : array of items )     n = list.count;       for i = 0 to n-1 do:        swapped = false       for j = 0 to n-i-1 do:              if list[j] > list[j+1] then              swap( list[j], list[j+1] )                   swapped = true           end if         end for       if(swapped == false) then          break       end if     end for  return list NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

4 Sıralama ALGORİTMALARI
Eklemeli Sıralama (Insertion Sort) This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained which is always sorted. For example, the lower part of an array is maintained to be sorted. An element which is to be 'insert'ed in this sorted sub-list, has to find its appropriate place and then it has to be inserted there. Hence the name, insertion sort. The array is searched sequentially and unsorted items are moved and inserted into the sorted sub-list (in the same array). This algorithm is not suitable for large data sets as its average and worst case complexity are of Ο(n2), where n is the number of . Step 1 − If it is the first element, it is already sorted. return 1; Step 2 − Pick next element Step 3 − Compare with all elements in the sorted sub-list Step 4 − Shift all the elements in the sorted sub-list that is greater than the value to be sorted Step 5 − Insert the value Step 6 − Repeat until list is sorted NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

5 Sıralama ALGORİTMALARI
Seçmeli Sıralama (Selection Sort) Seçmeli sıralama basit bir sıralama algoritmasıdır. Bu sıralama algoritması, yerinde karşılaştırma tabanlı bir algoritma olup, bu algoritma, listenin sol taraftaki sıralı kısım ve sağ ucundaki sıralanmamış kısım olmak üzere iki kısma ayrılmıştır. Başlangıçta, sıralanmış parça boş ve listelenmemiş kısım tüm listedir. En küçük eleman sıralanmamış diziden seçilir ve en soldaki öğeyle değiştirilir ve bu öğe sıralanmış dizinin bir parçası haline gelir. Bu işlem, sıralanmış olmayan dizi sınırını sağa bir unsurla taşımaya devam eder. Bu algoritma, büyük veri kümeleri için uygun değildir çünkü ortalama ve en kötü durum karmaşıklıkları O'dır (n), burada n sayısıdır. sort(A)  for i ← 1 to n-1     smallest ← i        for j ← i + 1 to n         if A[ j ] ≥ A[ smallest ]              smallest ← j             if smallest ≠ i          Exchange A[ j ] ↔ A[ smallest ] NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

6 Sıralama ALGORİTMALARI
Birleştirmeli Sıralama (Marge Sort) Birleştirme sıralama, bölme ve ele geçirme tekniğine dayanan bir sıralama tekniğidir. En kötü durum zamanı karmaşıklığı Ο (n log n) olduğunda, en çok saygı gören algoritmalardan biridir. Sıralama birleştirme önce diziyi eşit yarımlara böler ve bunları sıralı biçimde birleştirir. Birleştirme sıralama, daha fazla bölünemediği sürece listeyi eşit yarıya böler. Tanım olarak, listedeki yalnızca bir öğe ise, sıralanır. Daha sonra, birleştirme sıralama, yeni listeyi de sıralanmış halde tutarak küçük sıralı listeleri birleştirir. Algoritma: Step 1 − if it is only one element in the list it is already sorted, return. Step 2 − divide the list recursively into two halves until it can no more be divided. Step 3 − merge the smaller lists into new list in sorted order. NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

7 Sıralama ALGORİTMALARI
Hızlı Sıralama (Quick Sort) Hızlı sıralama çok etkili bir sıralama algoritmasıdır ve veri dizisinin daha küçük dizilere bölünmesine dayanır. Büyük bir dizi, belirtilen değerden daha küçük değerleri tutan iki diziye ayrılır; bunlar, bölüm oluşturulduğuna ve başka bir dizinin pivot değerinden daha büyük değerleri tuttuğu pivotu söyler. Hızlı sıralama, bir diziyi bölüştürür ve sonuçta ortaya çıkan iki alt sıralamayı sıralamak için kendini iki defa tekrarlar çağırır. Bu algoritma, büyük ve büyük ölçekli veri setleri için oldukça etkilidir çünkü ortalama ve en kötü durum karmaşıklığı O'dır (nlogn), burada n sayısıdır. Step 1 − Choose the highest index value has pivot Step 2 − Take two variables to point left and right of the list excluding pivot Step 3 − left points to the low index Step 4 − right points to the high Step 5 − while value at left is less than pivot move right Step 6 − while value at right is greater than pivot move left Step 7 − if both step 5 and step 6 does not match swap left and right Step 8 − if left ≥ right, the point where they met is new pivot NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

8 YBLG202 Veri Yapıları ve Algoritmalar
Kaynakça NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu

9 NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu
KAYNAKÇA M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc., 2011 Hakan Kutucu, VERİ YAPILARI, Karabük Üniversitesi Mühendislik fakültesi, 2014 Data Structures and Algorithms, TutorialPoints, NİŞANTAŞI ÜNİVERSİTESİ ©/Yrd. Doç. Dr. Önder Eyecioğlu


"NİŞANTAŞI ÜNİVERSİTESİ" indir ppt

Benzer bir sunumlar


Google Reklamları