Insertion Sort algoritmi
Alqoritmlər
1
Yazı
1
Yazarlar
31
Baxış
-
Insertion Sort sadə və asan başa düşülən sıralama alqoritmlərindən biridir. Bu alqoritm son sıralanmış massivi bir elementi digərinin ardınca yerbəyer etməklə qurur. Quicksort, Heapsort və Merge Sort kimi daha mürəkkəb alqoritmlərlə müqayisədə böyük listlərdə daha az effektivdir. Lakin bəzi üstünlüklərə malikdir:
- Sadədir – asan başa düşülür və tətbiq edilir.
- Kiçik və demək olar ki, sıralanmış listlərdə yaxşı performans göstərir.
- Yerində sıralama (in-place sort) alqoritmidir, yəni əlavə yaddaş tələb etmir.
Bu alqoritmin zaman mürəkkəbliyi:
- Ən pis və orta hallarda: O(n²)
- Ən yaxşı halda (əgər massiv artıq sıralanıbsa): O(n)
İnsertion Sort-un işləmə mexanizmi
- Xarici dövrü (outer loop) başlat –
i = 1
-dən başlayaraq massiv sonuna qədər iterasiya et. - İki dəyişən müəyyən et:
current
– cari elementin (arr[i]
) dəyərini saxlayır.j
–i-1
dəyərinə bərabər olan indeksdir.
- Daxili
while
dövrü başlat və aşağıdakı şərtləri yoxla:j >= 0
olduqda vəarr[j]
current
-dən böyük olduqda.
- Əgər şərt ödənirsə:
arr[j+1] = arr[j]
– yənij
indeksində olan elementi sağa ötür.j
dəyərini bir vahid azaldır.
- Xarici dövrün sonunda
arr[j+1]
current
dəyərinə bərabər edilir. - Sonda sıralanmış massivi qaytarır.
Həlli (JavaScript)
const insertionSort = (arr) => { for (let i = 1; i < arr.length; i++) { let currentElement = arr[i]; let j = i - 1; while (j >= 0 && arr[j] > currentElement) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = currentElement; } return arr; }
Bu funksiya yerində (in-place) sıralama aparır və əlavə yaddaş istifadə etmir. Kiçik massivlər üçün ideal seçimdir.
Video izahı (ingiliscə)
Vizual izahı
Əgər sadə, asan başa düşülən və kiçik massivlər üçün effektiv bir sıralama alqoritmi axtarırsınızsa, Insertion Sort yaxşı seçim ola bilər. Lakin böyük massivlər üçün Quicksort və Merge Sort kimi daha optimallaşdırılmış alqoritmlər tövsiyə olunur.
Bilik paylaşdıqca artan bir sərvətdir