Əlavə etməklə nizamlama
From Wikipedia, the free encyclopedia
Artırmalı nizamlama (ing. insertion sort ~ ru. сортировка вставкой ~ tr. eklemeli sıralama) – siyahıda bir elementdən başlayıb, yeni elementləri bir-bir lazım olan yerlərə qoymaqla siyahının yenidən qurulmasından ibarət nizamlama alqoritmi. Artırmalı nizamlama massivlərlə işlərkən səmərəli olmur (elementlərin daim yerlərini dəyişdirilməsi səbəbindən), ancaq əlaqəli siyahıların çeşidlənməsi üçün ideal uyğun gəlir. Proqramlaşdırması olduqca sadə olan ancaq performans baxımından digər sıralama alqoritmlərindən zəifdir.
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Insertion-sort-example-300px.gif/220px-Insertion-sort-example-300px.gif)
Alqoritmin adı seçilən elementin sıralanmış massivdə uyğun yerə əlavə edilməsindən gəlir.
İşləməsinə aşağıdakı nümunə üzərində baxaq.
3 4 2 8
ilk rəqəmdən başlayaq.(3)
Birinci gedişdə sadəcə 3 sıralanır yəni heç nə etmirik.
3* 4 2 8(* simvolu O ana qədər sıraladığımız rəqmləri göstərir. Yəni * solundakı rəqəmlər sıralanmışdır.)
İkinci gedişdə seçdiyimiz ədəd 4-dür. 3 ilə 4-ü qarşılaşdırırığ 3 kiçik olduğu üçün yer dəyişdirmirlər.
3 4* 2 8
Üçüncü gedişdə sıradakı rəqəm 2-dir və 4 ilə qarşılaşdırırığ Və 2 kiçik olduğu üçün 4-ilə yer dəyişdirirlər.
3 2 4* 8(Sıralama hələ bitməyib çünki, 2 3-dən kiçikdir) 2 3 4* 8(3. gediş tamamlandı)
Dördüncü gedişdə Növbəti ədəd 8-dir və burda heç bir əməliyyat yerinə yetirilmir ,çünki 8 hamısında böyükdür
insertionSort (array A)
for i = 1 to length[A-1] do
value = A[i]
j = i-1
while j >= 0 and A[j] > value
A[j + 1] = A[j]
j = j-1
A[j+1] = value