Слайд 3Sıralama Algoritmaları
Herhangi bir sayıdaki verilerin
sınırlı bellek ve
işlem gücü ile belirli
bir sıraya göre dizilmesidir.
Burada önemli olan: en az bellek kullanmak ve
en hızlı performans
verecek bir algoritmanın elde edilmesidir.
Слайд 4Sıralama Algoritmaları
Bellek Kullanımı: Çalışırken ek belek ihtiyacı duyan algoritmalarda kullanılır.
Ayrıcada sıralama
işleminin yapılması sırasında hafızanın kullanımına göre de:
Harici sıralama (External Sort) ve
Dahili Sıralama (Internal Sort).
Слайд 5Sıralama Algoritmaları
Bellek Kullanımı: Çalışırken ek belek ihtiyacı duyan algoritmalarda kullanılır.
Ayrıcada sıralama
işleminin yapılması sırasında hafızanın kullanımına göre de:
Harici sıralama (External Sort) ve
Dahili Sıralama (Internal Sort).
Слайд 6Sıralama Algoritmaları
Hesaplama Karmaşıklığı : Oluşturulmuş olan algoritmanın yaptığı işlem sayısıdır.
iyi(best),
ortalama(average) ve
en kötü(worst) durumu olarak belirtilir.
Ne kadar çok işlem yapılırsa o kadar uzun süre geçer ve dolayısı ile algoritmanın işleyiş süresini de etkiler.
Слайд 7Sıralama Algoritmaları
Yerdeğiştirmenin karmaşıklığı: İçerisinde ek bellek kullanmayan algoritmalarda kullanılan karşılaştırılabilmesi için önemlidir.
Ne kadar az yer değiştirme o kadar performans demektir
Durağanlık(stability): Algoritmanın uygulanması sırasında sıralanmış bir verinin tekrar sıralamaya dahil edilmesidir.
Слайд 8Sıralama Algoritmaları
Fakat en önemli kriter:
Bellek (Hafıza) Verimliliği (Memory efficiency) ve
Zaman Verimliliği
(Time efficiency)’dir.
* Bir algoritmanın hızlı çalışması demek daha çok hafızaya ihtiyaç duyması demektir.
* Tersi durumda da bir algoritmanın daha az yere ihtiyaç duyması daha yavaş çalışması demektir.
Ancak bir algoritma hem zaman hem de hafıza olarak verimliyse bu durumda diğer algoritmalardan başarılı sayılabilir.
Слайд 9Elemeli Sıralama,Kabarcık Sıralama(Bubble Sort)
Dizinin elemanları üzerinden ilk elemandan başlayarak ve her geçişte
sadece yan yana bulunan iki eleman arasında sıralama yapılır. Dizinin başından sonuna kadar tüm elemanlar bir kez işleme tabi tutulduğunda dizinin son elemanı (küçükten büyüğe sıralandığında) en büyük eleman haline gelecektir.
Слайд 10Elemeli Sıralama,Kabarcık Sıralama(Bubble Sort)
Bir sonraki tarama ise bu en sağdaki eleman dışarıda
bırakılarak gerçekleştirilmektedir. Bu dışarıda bırakma işlemi de dış döngüdeki sayaç değişkeninin değerinin her işletimde bir azaltılmasıyla sağlanmaktadır.
Elemeli Sıralama, Kabarcık Sıralama(Bubble Sort)
Слайд 11Elemeli Sıralama,Kabarcık Sıralama(Bubble Sort)
Bubble sort, sıralama teknikleri içinde anlaşılması ve programlanması kolay
olmasına rağmen etkinliği en az olan algoritmalardandır (n elemanlı x dizisi için).
Слайд 12Elemeli Sıralama,Kabarcık Sıralama(Bubble Sort)
9, 5, 8, 3, 1. rakamlarının azalan şekilde sıralanmasını
buble sort algoritmasıyla yapalım:
Слайд 13Elemeli Sıralama,Kabarcık Sıralama(Bubble Sort)
9, 5, 8, 3, 1. rakamlarının azalan şekilde sıralanmasını
buble sort algoritmasıyla yapalım:
Слайд 14Elemeli Sıralama,Kabarcık Sıralama(Bubble Sort)
9, 5, 8, 3, 1. rakamlarının azalan şekilde sıralanmasını
buble sort algoritmasıyla yapalım:
Слайд 16Seçmeli sıralama (selection sort)
Mantıksal olarak ilk önce dizi sıralanmış ve sıralanmamış 2
parçaya bölünür.
Başlangıçta tüm dizi sıralanmamıştır.
Konumunu başlangıca ayarla (i. eleman)
i. elemandan başlayarak dizinin kalan elemanları ile karşılaştırma yaparak en küçük elemanını bul/seç.
- i. Elemanla değiştir.
Konumunu 1 artır. (i+1. elemana gel)
i+1. elmandan başlayarak en küçüğü bul
i+1. elemanla yer değiştir.
Слайд 18#include
int main()
{int dizi [100],n,c,d,degistir;
printf("Kaç sayı Sıralanacak: "); scanf("%d",&n);
printf("%d sayı giriniz ve
her girdiğiniz sayıdan sonra ENTER a basınız\n",n);
for(c=0;cfor(c=0;c{
for(d=0;d {
if(dizi[d]>dizi[d+1]) /*büyükten küçüğe sıralamak için '<' yerine '>' */
{
degistir=dizi[d];
dizi[d]=dizi[d+1];
dizi[d+1]=degistir;
}
}
}
printf("Küçükten büyüğe sıralı dizi:\n");
for(c=0;creturn 0;
}