Insertion Sort: āĻāĻāĻি āϏāĻšāĻ āĻāĻŦং āĻাāϰ্āϝāĻāϰী āϏāϰ্āĻিং āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽ
Sorting āĻŦা āϏāϰ্āĻিং āĻĒ্āϰāĻ্āϰিāϝ়া āĻĒ্āϰোāĻ্āϰাāĻŽিংāϝ়ে āĻāĻāĻি āϏাāϧাāϰāĻŖ āϏāĻŽāϏ্āϝা। āĻāĻŽāϰা āĻ āύেāĻ āϏāĻŽāϝ় āĻĄেāĻা āϏাāĻাāύোāϰ āĻĒ্āϰāϝ়োāĻāύ āĻĒāĻĄ়ে āϝাāϤে āĻāĻŽāϰা āϏāĻšāĻে āĻĒ্āϰāϝ়োāĻāύীāϝ় āϤāĻĨ্āϝ āĻĒেāϤে āĻĒাāϰি। āĻāϰāĻāĻŽ āĻāĻāĻি āϏāĻšāĻ āϏāϰ্āĻিং āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽ āĻšāϞ Insertion Sort। āĻāĻি āύāϤুāύ āĻāϞিāĻŽেāύ্āĻāĻুāϞোāĻে āϏāĻ িāĻ āĻ āĻŦāϏ্āĻĨাāύে āϰেāĻে āĻāĻেāϰ āĻĄেāĻাāĻুāϞো āϏāϰ্āĻ āĻāϰে āϰাāĻে।
Insertion Sort āĻিāĻাāĻŦে āĻাāĻ āĻāϰে?
āĻāĻ āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽāĻি āĻāĻāĻি āĻāύāĻĒুāĻ āϞিāϏ্āĻāĻে āϧাāĻĒে āϧাāĻĒে āϏাāĻাāϝ়। āĻĒ্āϰāϤিāĻি āϧাāĻĒে, āϞিāϏ্āĻেāϰ āĻāĻāĻি āĻāϞিāĻŽেāύ্āĻ āϤুāϞে āύেāĻāϝ়া āĻšāϝ় āĻāĻŦং āϏেāĻিāĻে āϤাāϰ āϏāĻ িāĻ āϏ্āĻĨাāύে āϰাāĻাāϰ āĻāύ্āϝ āĻāĻেāϰ āĻāϞিāĻŽেāύ্āĻāĻুāϞোāϰ āϏাāĻĨে āϤুāϞāύা āĻāϰা āĻšāϝ়। āĻāĻাāĻŦে āύāϤুāύ āĻāϞিāĻŽেāύ্āĻ āϏāĻ িāĻ āϏ্āĻĨাāύে āĻŦāϏে āĻāĻŦং āĻāĻেāϰ āĻāϞিāĻŽেāύ্āĻāĻুāϞোāĻে āĻĄাāύ āĻĻিāĻে āϏāϰিāϝ়ে āĻĻেāϝ়।
Python āĻোāĻĄ āĻāĻĻাāĻšāϰāĻŖ
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
arr = [3, 8, 7, 5, 9, 4]
insertion_sort(arr)
print(arr)
āĻোāĻĄেāϰ āĻŦ্āϝাāĻ্āϝা
āĻāĻĒāϰেāϰ āĻোāĻĄāĻি āĻāĻāĻি insertion_sort āĻĢাংāĻļāύ āϤৈāϰি āĻāϰে āϝা āĻāĻāĻি āϞিāϏ্āĻāĻে āϏাāĻিāϝ়ে āĻĻেāϝ়। āύিāĻে āĻোāĻĄāĻিāϰ āϧাāĻĒে āϧাāĻĒে āĻŦ্āϝাāĻ্āϝা āĻĻেāĻāϝ়া āĻšāϞো:
- Line 1: āĻāĻŽāϰা āĻāĻāĻি
insertion_sort
āύাāĻŽে āĻĢাংāĻļāύ āĻĄিāĻĢাāĻāύ āĻāϰেāĻি āϝাarr
āύাāĻŽে āĻāĻāĻি āϞিāϏ্āĻ āĻāύāĻĒুāĻ āĻšিāϏেāĻŦে āĻ্āϰāĻšāĻŖ āĻāϰে। - Line 2: āĻāĻāĻি āϞুāĻĒ āĻাāϞাāύো āĻšāϝ়েāĻে āϝা ā§§ āĻĨেāĻে āĻļুāϰু āĻāϰে āϞিāϏ্āĻেāϰ āĻļেāώ āĻĒāϰ্āϝāύ্āϤ āĻāϞে। āĻāĻি
key
āύাāĻŽে āĻāĻāĻি āĻেāϰিāϝ়েāĻŦāϞ āϧāϰে āϰাāĻে āϝা āĻŦāϰ্āϤāĻŽাāύ āĻāϞিāĻŽেāύ্āĻāĻি āϧāϰা āĻšāϝ়। - Line 3:
j
āύাāĻŽāĻ āĻেāϰিāϝ়েāĻŦāϞāĻিi - 1
āĻŽাāύে, āĻ āϰ্āĻĨাā§ āĻāĻেāϰ āĻāύ্āĻĄেāĻ্āϏ āϧāϰে āϰাāĻে। - Line 4: āĻāĻāĻি
while
āϞুāĻĒ āĻāϞāĻে āϝāϤāĻ্āώāĻŖ āĻĒāϰ্āϝāύ্āϤj
āĻļূāύ্āϝ āĻŦা āĻŦāĻĄ় āĻāĻŦংarr[j]
āĻāϰ āĻŽাāύkey
āĻāϰ āĻেāϝ়ে āĻŦেāĻļি। - Line 5:
arr[j + 1]
āĻarr[j]
āĻāϰ āĻŽাāύ āϰাāĻা āĻšāĻ্āĻে, āĻ āϰ্āĻĨাā§ āĻŦāĻĄ় āĻŽাāύāĻুāϞো āĻĄাāύ āĻĻিāĻে āϏāϰাāύো āĻšāĻ্āĻে। - Line 6:
j
āĻāϰ āĻŽাāύ āĻāĻ āĻāĻŽিāϝ়ে āĻĒূāϰ্āĻŦেāϰ āĻāϞিāĻŽেāύ্āĻে āϝাāĻ্āĻি। - Line 7: āϏāĻ িāĻ āϏ্āĻĨাāύে
key
āĻŦāϏাāύো āĻšāĻ্āĻে।
āĻাāĻেāϰ āĻāĻĻাāĻšāϰāĻŖ
āϧāϰুāύ, āĻāĻŽাāĻĻেāϰ āĻāύāĻĒুāĻ āϞিāϏ্āĻāĻি āĻিāϞ [3, 8, 7, 5, 9, 4]
। āύিāĻে āĻĒ্āϰāϤিāĻি āϧাāĻĒে āϞিāϏ্āĻেāϰ āĻĒāϰিāĻŦāϰ্āϤāύ āĻĻেāĻাāύো āĻšāϝ়েāĻে:
- āĻĒ্āϰāĻĨāĻŽ āϧাāĻĒে
i = 1
,key = 8
। āϝেāĻšেāϤু3
āĻোāĻ8
āĻāϰ āĻেāϝ়ে, āϤাāĻ āĻোāύ āĻĒāϰিāĻŦāϰ্āϤāύ āĻšāϝ় āύা। - āĻĻ্āĻŦিāϤীāϝ় āϧাāĻĒে
i = 2
,key = 7
।8 > 7
, āϤাāĻ8
āĻে āĻĄাāύ āĻĻিāĻে āϏāϰিāϝ়ে7
āϤাāϰ āϏāĻ িāĻ āϏ্āĻĨাāύে āĻŦāϏাāύো āĻšāϝ়। - āϤৃāϤীāϝ় āϧাāĻĒে
i = 3
,key = 5
।8, 7
āĻāĻŦং5
āĻāϰ āϤুāϞāύাāϝ় āĻŦāĻĄ়, āϤাāĻ āĻāĻুāϞো āĻĄাāύ āĻĻিāĻে āϏāϰে āϝাāϝ় āĻāĻŦং5
āϏāĻ িāĻ āϏ্āĻĨাāύে āĻŦāϏে। - āĻāϤুāϰ্āĻĨ āϧাāĻĒে
i = 4
,key = 9
। āϝেāĻšেāϤু āĻāĻেāϰ āĻāϞিāĻŽেāύ্āĻāĻুāϞো9
āĻāϰ āĻেāϝ়ে āĻোāĻ, āϤাāĻ āĻোāύ āĻĒāϰিāĻŦāϰ্āϤāύ āĻšāϝ় āύা। - āĻĒāĻ্āĻāĻŽ āϧাāĻĒে
i = 5
,key = 4
।9, 8, 7, 5
āĻāĻুāϞো4
āĻāϰ āĻেāϝ়ে āĻŦāĻĄ়, āϤাāĻ āϏেāĻুāϞো āĻĄাāύ āĻĻিāĻে āϏāϰিāϝ়ে4
āϏāĻ িāĻ āϏ্āĻĨাāύে āĻŦāϏাāύো āĻšāϝ়।
āĻূāĻĄ়াāύ্āϤ āĻāĻāĻāĻĒুāĻ
āĻļেāώে āĻĒ্āϰিāύ্āĻ āĻāϰāϞে āĻāĻŽāϰা āĻĒাāĻ: [3, 4, 5, 7, 8, 9]
।
āĻāĻĒāϏংāĻšাāϰ
Insertion Sort āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽāĻি āϏāĻšāĻেāĻ āĻŦোāĻা āϝাāϝ় āĻāĻŦং āĻোāĻ āĻāĻাāϰেāϰ āĻĄেāĻা āĻŦা āϞিāϏ্āĻ āϏāϰ্āĻ āĻāϰাāϰ āĻāύ্āϝ āĻŦেāĻļ āĻāĻĒāϝোāĻী। āĻāĻি āĻāĻāĻি O(n^2) āĻāĻŽāĻĒ্āϞেāĻ্āϏিāĻি āϏāĻŽ্āĻĒāύ্āύ āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽ, āĻ āϰ্āĻĨাā§ āĻŦāĻĄ় āϞিāϏ্āĻেāϰ āĻ্āώেāϤ্āϰে āĻāĻি āĻāĻāĻু āϧীāϰāĻāϤিāϰ āĻšāϤে āĻĒাāϰে। āϤāĻŦে āĻāĻি āĻļেāĻাāϰ āĻāύ্āϝ āĻāĻŦং āϏāϰ্āĻিং āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽāĻুāϞোāϰ āĻিāϤ্āϤি āĻŦুāĻāϤে āϏাāĻšাāϝ্āϝ āĻāϰে।
āϤুāĻŽি āϝāĻĻি āĻāϰāĻ āĻāύ্āύāϤ āϏāϰ্āĻিং āĻ ্āϝাāϞāĻোāϰিāĻĻāĻŽ āĻļিāĻāϤে āĻাāĻ, āϤāĻŦে Khan Academy āĻāϰ āĻāύ্āĻেāύ্āĻ āĻĻেāĻāϤে āĻĒাāϰো। Happy coding!