- Sıralama , sayısal ortamdaki bilgilerin veya verilerin , belirli bir anahtar sözcüğe göre belirli bir anlamda sıralı erişilmesini sağlayan düzenlemedir.
- Sıralama algoritmaları, elemanları rastgele olan veya dağınık şekilde bulunan bilgileri belirli bir anlamada düzenleme işi yaparlar.
- Eğer ki sıralama işlemi disk,çubuk bellek gibi saklama birinlerinde tutulan dosyalar üzerinde yapılırsa harici sıralama(external sorting) , RAM gibi bilgisayarın iç bellegi üzerinde yapılırsa dahili sıralama(internal sorting) olarak anılır
Insertion Sort Algorithm(Araya Ekleme Algoritması) :
Sıralanacak dizinin ilk elemanını yerine bırakarak ondan sonraki elemanları sırayla alarak sıraya uygun yere sokar.Sıralı olan dizilerde sıralı olma özelliğini bozmadan yeni eleman eklemek için uygundur denilebilir.En iyi durum zaman karmaşası O(n) , en kötü durum O(n^2) dir.
C dilinde örneğine bakacak olursak eğer ;
// aşağıdaki yazılardan çoğunu anlamayabilirsiniz bu yüzden insertion sortu anlamak için aşağıdaki arrayi kafanızda canlandırarak senaryoyu düşünün.
void insertionSort(int array[],int N){
int ekle;
int j;
// 1 'den başlatıyoruz çünkü 1.indexten başlayacağız kıyaslamaya
for(int i = 1;i<N;i++){
// ekle değerimiz 1.indexteki değer olacak
ekle = array[i];
// burada koşullarımızı sağlaması için inner döngümüzü de oluşturduk
for(j = i-1;j>=0 && ekle <= array[j];j--){
array[j+1]=array[j]; // burda geriye kaydırıyoruz
}
// burda da yeri boşalttık ve eklememizi yapıyoruz
array[j+1]=ekle;
}}
int main(){
int array[] = {1,0,2,9,4,3,5,6,99};
int n = sizeof(array) / sizeof(array[0]);
insertionSort(array,n);
for(int i = 0;i<n;i++){
printf("%d\t",array[i]);
}
return 0;
}