Këto janë tre algoritme të thjeshtë O(n²) për krahasim renditjeje. Ata janë të ngadaltë për hyrje të mëdha, por të lehtë për t'u kuptuar dhe të dobishëm për mësimin e mekanikës së rendjes.
Këto janë tre algoritme të thjeshtë O(n²) për krahasim renditjeje. Ata janë të ngadaltë për hyrje të mëdha, por të lehtë për t'u kuptuar dhe të dobishëm për mësimin e mekanikës së rendjes.
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i] # element to place
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j] # shift bigger elements right
j -= 1
arr[j + 1] = key # drop key into the gap
return arr
insertion_sort([5, 2, 4, 1]) # -> [1, 2, 4, 5]
| Rendja | Më mirë | Më keq | E qëndrueshme | Në vend |
|---|---|---|---|---|
| Bubble | O(n) | O(n²) | Po | Po |
| Selection | O(n²) | O(n²) | Jo | Po |
| Insertion | O(n) | O(n²) | Po | Po |
Insertion sort është vërtet i shpejtë për vargje të vegjël ose pothuajse të renditur dhe përdoret brenda rendimeve hibride. Shmango të tre në të dhëna të mëdha të parendura — përdor rendime O(n log n) në vend të kësaj.
Këto rendime ndërtojnë intuitë për parafjalët, këmbesat dhe qëndrueshmërinë para se të merreni me algoritme të përparuar.
Insertion sort në veçanti shfaqet në rendime të prodhimit (si Timsort) për nënvargje të vogla.
Dimja pse janë O(n²) e bën kërcimin në rendime O(n log n) të kuptimtë.
Një bibliotekë pyetjesh intervistash IT me përgjigje të detajuara — nga Junior te Senior.
Dhuro