Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sıralama ve Sıralama Algoritmaları Uğur Çakır Onur Muharrem Örün Recep Özalp.

Similar presentations


Presentation on theme: "Sıralama ve Sıralama Algoritmaları Uğur Çakır Onur Muharrem Örün Recep Özalp."— Presentation transcript:

1 Sıralama ve Sıralama Algoritmaları Uğur Çakır Onur Muharrem Örün Recep Özalp

2 Temel Kavramlar ► Sıralama sayısal ortamdaki bilgilere veya verilere, belirli bir anahtar sözcüğe göre, belirli bir anlamda sıralı erişilmesini sağlayan düzenlemedir. Bilgisayar yazılım uygulamalarında ve donanım tabanlı sayısal sistem çözümlerinde, bilgilerin yada verilerin sıralı olması bilgi erişimini kolaylaştırır.

3 Sıralama işlemi belirli bir bilgi parçasına dayanılarak yapılır; bu bir sayı olabileceği gibi bir sözcük de olabilir veya bunların bir araya gelmesinden oluşabilir. Sıralama işleminde kullanılan bu bilgi parçası, genel olarak, anahtar sözcük(keyword) olarak adlandırılır. Sıralama işlemi belirli bir bilgi parçasına dayanılarak yapılır; bu bir sayı olabileceği gibi bir sözcük de olabilir veya bunların bir araya gelmesinden oluşabilir. Sıralama işleminde kullanılan bu bilgi parçası, genel olarak, anahtar sözcük(keyword) olarak adlandırılır.

4 Bilgileri belirli bir ölçüte göre sıralamak için çeşitli yöntemler kullanılmaktadır. Bunları şöyle sıralayabiliriz. Bilgileri belirli bir ölçüte göre sıralamak için çeşitli yöntemler kullanılmaktadır. Bunları şöyle sıralayabiliriz. ► Seçerek Sıralama(Selection Sort) ► Kabuk Sıralama(Shell Sort) ► Yerleştirerek Sıralama(Insertion Sort) ► Kabarcık Sıralama(Bubble Sort) ► Hızlı Sıralama(Quick Sort) ► Birleşmeli Sıralama(Merge Sort) ► Kümeleme Sıralaması(Heap Sort)

5 Seçerek Sıralama(Selection Sort) ► Seçerek sıralama algoritmasının çalışma mantığını şu şekilde tanımlayabiliriz. Her eleman kendisinden sonraki tüm elemanlarla test edilir. Böylece “n” elemanlı bir dizi “n- 1” adımda sıralanır. İlk adımda dizinin ilk elemanı sırasıyla (Örneğin, 2,3,….,n) diğer elemanlarla test edilir. Kendisinden daha küçük bir eleman bulunması durumunda her iki eleman yer değiştirir. İlk adımda dizinin en küçük elemanı, dizinin ilk elemanı olarak alınır ve dizinin birinci alanına atanır. İkinci adımda dizinin ikinci elemanı diğer elemanlarla test edilir. Kendisinden daha küçük bir eleman bulunması durumunda bu iki eleman yer değiştirir ve bu işlem (n-1). Elemana kadar tekrarlanır. Her defasında geriye kalan sayıların en küçüğü bulunur ve ilgili alana atanır.

6

7

8 Kabuk Sıralama(Shell Sort) ► Kabuk sıralama, sıralanacak dizinin sürekli ikiye bölünerek çıkan aralık değeri kadar uzaktaki elemanla test edilerek sıralama işlemini gerçekleştirir.Sıralanacak dizinin eleman sayısı ilk önce iki gruba ayrılır ve bu grupların aynı sıradaki elemanları test edilir. (Örneğin, 10 elemanlı bir dizi için ilk aralık 5 olur. 1. eleman ile 6., 2. ile 7., 3. ile 8., 4. ile 9. ve 5. ile 10. eleman test edilir.) Ardından mevcut gruplar tekrar ikiye bölünür. (1. eleman ile 3., 2. ile 4., 3. eleman ile 5., 4. ile 6., …, 8. eleman ile 10. test edilir.) Gruplar tekrar ikiye bölünür ve her grup kendinden sonraki grupla test edilir. Her test işleminde şartın durumuna göre elemanlar arasında yer değiştirme işlemleri yapılır. Bu işlemler bölme işlemi sonunda çıkan değer sıfır oluncaya kadar devam eder.

9

10

11 Yerleştirerek Sıralama(Insertion Sort) ► Yerleştirerek sıralama, belirli bir anda dizinin belirli bir kısmını sıralı tutarak ve bu kısmı her adımda biraz daha genişleterek sıralama işlevini yerine getirir. Sıralı kısım işlev son bulunca dizinin tamamına ulaşmaktadır. Bu amaçla dizinin belirli bir kısmını sıralı hale getirebilmek için “i” değişkeninin belirlediği eleman dıştaki döngünün her işletilişinde bu dizi parçası içinde uygun yere yerleştirilmektedir. Bu yerleştirme işlemi de “i ” değişkeninin belirlediği elemandan büyük elemanların sağa doğru kaydırılması ve boşalan yere de bu elemanın yerleştirilmesiyle gerçekleştirilmektedir. “ i” değişkeninin değeri arttıkça dizinin sıralı hale gelen bölümü artmakta ve “i” değişkeni dizinin uzunluğuna ulaştığında tüm dizi sıralanmış olmaktadır.

12

13

14

15

16

17 Kabarcık Sıralama(Bubble Sort) ► Kabarcık sıralamanın işletimini şu şekilde tanımlayabiliriz. Dizinin elemanları üzerinden tekrar tekrar geçilir ve her geçişte sadece arka arkaya gelen iki eleman arasında test işlemi yapılır. Bu işlem tüm elemanlar sıralanıncaya kadar devam ettirilir.

18 ► Dizinin başından sonuna kadar tüm elemanlar bir kez işleme tabi tutulduğunda dizinin son elemanı en büyük eleman haline gelecektir. Böylelikle bu iç döngünün bir kez işletimi sonucu en büyük eleman yerine yerleştirilmiş olacaktır. Bir sonraki tarama ise bu en sondaki eleman dışarıda bırakılarak gerçekleştirilmektedir. Bu dışarıda bırakma işlemi de dış döngüdeki “i”değişkeninin değerinin her işletimde bir azaltılmasıyla sağlanmaktadır.”İ“ değişkeninin değeri 1 değerine ulaştığında ise dizinin başında kalan son iki eleman da sıralanmakta ve sıralama işlemi tamamlanmış olmaktadır. değişkeninin değeri 1 değerine ulaştığında ise dizinin başında kalan son iki eleman da sıralanmakta ve sıralama işlemi tamamlanmış olmaktadır.

19

20

21

22

23

24 Hızlı Sıralama(Quick Sort) ► Hızlı sıralama algoritmasında dizi her adımda, ilk bölümde küçükler ve ikinci bölümde de büyükler olacak şekilde iki ayrı bölüme ayrılır. Her adımda bu iki ayrı bölüm birbirinden bağımsız olarak sıralanır. Bu işlemler için verilerden bir tanesi referans (pivot) olarak seçilir. Bu referans elemandan küçükler bir bölüme, büyük olanlar ise bir bölüme aktarılır. Referans eleman ise sıralamadan sonra olması gereken yere yerleştirilir.

25

26

27

28 Birleşmeli Sıralama(Merge Sort) ► Birleşmeli sıralama algoritması, böl-yönet tekniğinden istifade ederek geliştirilmiştir. Bu sıralama algoritmasında, dizi iki alt diziye bölünür ve tekrar birleştirilir. Fakat bu birleştirme işlemi sıradan bir birleştirme değildir. İki dizinin birleştirilebilmesi için öncelikle sıralı olmaları gerekmektedir. Eğer alt diziler sıralı değillerse, orijinal diziye uygulandığı gibi, iki alt diziye bölünür. Bu mantıkla bölme işlemi alt dizinin daha fazla bölünemeyeceği duruma kadar, yani tek eleman kalana kadar devam eder.

29 ► Özetle sıralama işlemi şu şekildedir: 1. Diziyi iki eşit parçaya böl. 2. Dizinin sol alt bölümünü sırala. 3. Sıralanmış sol ve sağ alt bölümleri birleştir.

30

31

32

33

34 Kümeleme Sıralaması(Heap Sort) ► Kümeleme sıralamasının temeli ikili kümeleme ağacı (binary heap tree) kurulmasına dayanır. Sıralanacak elemanlar ilk önce bir kümeleme ağacı oluşturur; bu durumda kök en büyük değere sahiptir. Bu yöntemde sıralı diziyi elde etmenin iki yolu vardır. Birisi bir başka dizi gerektirmeksizin sırasız elemanların bulunduğu dizi üzerinde çalışır, diğeri sıralı elemanların tutulacağı sıralı bir dizi gerektirir.

35 ► Aynı dizi üzerinde sıralama yapan algoritma sıralama işlemini şu şekilde yapar: ► n elemanlı bir dizi üzerinde önce kümeleme ağacı kurulur; bu anda kök en büyük değeri tutar. Bu değer dizinin son elemanı ile yer değiştirilir. Bu aşamada en büyük değere sahip olan eleman dizinin sonuna alınmış olur. Daha sonra dizinin kalan (n-1) elemanı yeniden kümeleme işlemine sokulur ve en büyük ikinci değere sahip olan kök olur. Daha sonra aynı işlemler (n-2), (n-3) elemanlı dizi için yapılır ve dizi adım adım sıralanır.

36 ► Sıralı elemanların saklanacağı ikinci bir dizi kullanılması durumunda, kümeleme ağacının kök düğümü her zaman en büyük değere sahip olur gerçeğinden yola çıkılarak gerçekleştirilir. Kökteki değer alınır, sıralı elemanların tutulacağı dizinin sonuna yerleştirilir. Kümeleme ağacı kalan değerlerle yeniden kümelenir. Yine kökteki değer alınır ve bir öncekinin önüne koyulur. Yine kalan elemanlarla ağaç kümelenir. Bu işlem tüm elemanlar alınana kadar sürer.Bu, büyükten küçüğe sıralama yapar. Küçükten büyüğe yapılması için kökten alınan değerler ikinci dizinin başından itibaren yerleştirilir.

37

38

39 Alfabetik Bilgilerin Sıralanması ► Alfabetik bilgileri sıralamak için yapılacak olan test işleminde strcmp() fonksiyonu kullanılır. Bu işleme selection sort sıralamasını kullanarak şu örneği verebiliriz:

40

41

42


Download ppt "Sıralama ve Sıralama Algoritmaları Uğur Çakır Onur Muharrem Örün Recep Özalp."

Similar presentations


Ads by Google