Tekrardan merhabalar arkadaşlar. Bu yazımızda Sıralama Algoritmaları Linear Sort ele alacağız. Daha önceki yazımda özel algoritmalara gireceğimi söylemiştim. Bir önceki yazımı okumanızı öneririm. Önceliği sıralama algoritmalarına veriyorum. Sıralama algoritmalarının temel amacı isminden de anlaşılacağı gibi bir dizi halindeki verileri sıralamaktır. Tabi sıralama işlemi tek şekilde olmuyor. Benim yazılarımda bahsedeceğim sıralama algoritmalarını incelersek;
- Linear Sort
- Bubble Sort
- Merge Sort
- Selection Sort
Linear Sort
Bu algoritmaların hepsi farklı yöntemler kullanıyor.İnceledikçe göreceğiz.Bu yazımda başlıktan anlaşıldığı gibi Linear Sort’u inceleyecegiz. Linear sort en basit mantıkla sıralama yapabilen bir algoritmadır. Çalışma mantığı şöyle;Her bir eleman kendisinden sonraki elemanla karşılaştırılır eğer daha küçük bir sayıya rastlanırsa da elemanlar yer değiştirilir.Bu işlemin sonunda sıralama işlemi bitmiş olur.Algoritmasını yazarsak;
A1:Başla
A2:Dizinin eleman sayısını gir. (n)
A3:Döngüyü başlat (i=1 den n’e kadar)
A4:dizi[i] elemanlarını girerek diziyi oluştur.
A5:Döngüyü sonlandır.(i,n’e ulaştığı zaman)
A6:Döngüyü başlat(i=1 den n-1’e kadar)
A7:Döngüyü başlat(j=i+1’den n’e kadar)
A8:Eğer dizi[i]>dizi[j] ise yedek=dizi[i],dizi[i]=dizi[j],dizi[j]=dizi[i] işlemlerini yap.
A9:Döngüyü sonandır[j,n’e ulaştığı zaman]
A10:Döngüyü sonlandır(i,n-1 e ulaştığı zaman)
A11:Döngüyü başlat(i=1 den n’e kadar)
A12:dizi[i] yazdır.
A13:Döngüyü sonlandır(i,n’e ulaştığı zaman)
A14:Dur.
Gördüğümüz gibi algoritma olarak incelemek biraz karışık,hemen bir akış diyagramı yardımıyla inceleyelim.
Ve C++ kodlarına bakalım;
#include <conio.h> class linsort{ int dizi[],n; public: void getdata(); void showdata(); void sortLogic(); }; void linsort :: getdata(){ cout<<"Dizinin eleman sayısı: "; cin>>n; for(int i=0;i<n;i++) cin>>dizi[i]; } void linsort :: showdata(){ cout<<"Sıralamadan Sonra"; for(int i=0;i<n;i++) cout<<dizi[i]<<" "; } void linsort :: sortLogic(){ int yedek; for(int i=0;i<n;i++){ for(int j=i;j<n;j++){ if(dizi[i] > dizi[j]){ yedek = dizi[i]; dizi[i] = dizi[j]; dizi[j] = yedek; cout<<"dizi[i] = "<<dizi[i]<<" dizi[j] = "<<dizi[j]; } } cout<<endl; } } void main(){ clrscr(); cout<<"Linear Sort"; linsort obj; obj.getdata(); obj.sortLogic(); obj.showdata(); getch(); }
Bu yazımız da burada sona eriyor.Sonraki yazılarımızda görüşmek üzere hoşçakalın…