ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-25, Saturday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

Selection Sort කුමක්ද? පොත් තොග කතාවෙන් ඉගෙන ගන්න ලාභදායී අඩු-ලියන ක්‍රමය

Selection Sort කුමක්ද? පොත් තොග කතාවෙන් ඉගෙන ගන්න ලාභදායී අඩු-ලියන ක්‍රමය

ඔබේ පොත් තොගය උස අනුව සකස් කරන අවස්ථාවක් මත පදනම්ව, තෝරාගැනීමේ සෝට් (Selection Sort) ක්‍රමය දැන් කේතයක් සමඟ පැහැදිලි කරමු. මේ ක්‍රමය සරලයි – පළමුව සම්පූර්ණ අසංවිධානයේ ඉතා කුඩා අගය සොයා, එය අගුළු ලග ඇති පළමු ස්ථානයට හුවමාරු කරයි. ඉතිරි අසංවිධානයට මේ ක්‍රියාව නැවත නැවත කරමින්, අවසානයේ පූර්ණව සකස් කරයි.

Selection Sort කෙටි සාරාංශය: ලැයිස්තුව දෙකක් බවට බෙදේ – ඉදිරියට සකස් කර ඇති කොටස, පසුපස අසංවිධානය. එක් එක් පසුබැසීමේදී, අසංවිධානයේ සියලු අගයන් පරීක්ෂා කර, කුඩාම අගය සොයා, සකස් කොටසේ පළමු හිස් ස්ථානයට හුවමාරු කරයි.

උදාහරණයක් ලෙස [29, 10, 14, 37, 13] යන අරේ එක ගැන බලමු:

  • Pass 1: සම්පූර්ණ අරේ පරීක්ෂා කර 10 සොයා, 29 සමඟ හුවමාරු. → [10, 29, 14, 37, 13]
  • Pass 2: ඉන්පසු ඉදිරි අගය 29 සිට පරීක්ෂා කර 13 සොයා, 29 සමඟ හුවමාරු. → [10, 13, 14, 37, 29]
  • Pass 3: ඉදිරි 14 දැනටමත් කුඩාම අගය, හුවමාරු අවශ්‍ය නැත.
  • Pass 4: ඉදිරි 37 සිට පරීක්ෂා කර 29 සොයා, 37 සමඟ හුවමාරු. → [10, 13, 14, 29, 37]

පැහැදිලිව කියන්නේ, n අයිතම සඳහා සෑම විටම n‑1 පසුබැසීම් අවශ්‍ය වේ.

Python කේතයක් මෙසේ වේ:

def selection_sort(arr):
n = len(arr)
for i in range(n - 1):
min_index = i
for j in range(i + 1, n):
if arr[j] < arr[min_index]:
min_index = j
if min_index != i:
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr

මෙම කේතය තුළ, බාහිර ලූපය පිරවිය යුතු ස්ථානය තෝරන අතර, අභ්‍යන්තර ලූපය ඉතිරි අසංවිධානයේ කුඩාම අගය සොයයි. එක් එක් පසුබැසීමේදී එක වරක් පමණක් හුවමාරු සිදු වේ.

ඇයි මෙය කාලයෙහි වේගවත් නොවෙන්නේ? Bubble Sort වැනි ක්‍රමයන් වඩාත් සුසුදු පරිසරයන්හි ඉක්මනින් අවසන් විය හැක, ඒකේ “කැමති නැත” සලකුණක් ඇත. Selection Sort එකම පසුබැසීමේදී අසංවිධානය පූර්ණයෙන් පරීක්ෂා කරයි – අරේ පූර්ව-සකස් කර තිබුනත් ඒක වෙනස් නොවේ. එබැවින් සංකීර්ණතාවය O(n²) ලෙස අඛණ්ඩයි.

කෙසේ වෙතත්, ලියන ගණන අඩු වීමේ වාසියක් ඇත. උපරිම n‑1 හුවමාරු පමණක් සිදුවේ, එයින් Flash memory හෝ embedded system වැනි ලියන වියදම වැඩි පද්ධති වලට මෙය ගුණාත්මකව සුදුසු වේ.

තවත් වැදගත් කරුණක් “ස්ථාවරතාව” (Stability) ගැටළුවයි. සමාන අගයන්ගේ මුල් අනුපිළිවෙල තබා ගැනීමට Selection Sort හැකියාවක් නැත. උදාහරණයක් ලෙස [4a, 4b, 3] යන අරේ එකේ 3 කුඩාම අගය සොයා 4a සමඟ හුවමාරු කළ විට, 4b පෙරට පැමිණෙයි – එය ස්ථාවර නොවේ.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

  • ඉගෙනුම් පදනම: උපාධි පන්තියන්හි algorithm පරිච්ඡේදයක් ලෙස Selection Sort ඉගෙනීම, සිසුන්ට සරල න්‍යාය පදනමක් සපයයි.
  • දේශීය සංවර්ධනය: Flash memory, IoT උපාංග වැනි සීමිත ලියන චක්‍රයක් ඇති පද්ධතිවල, අඩු-ලියන සෝට් ක්‍රමයක් ලෙස මෙය භාවිතා කළ හැක.
  • ව්‍යාපාරික පරිසරය: දත්ත පිරිසිදු කිරීම, ලොකු ලැයිස්තු පිරික්සුම් වැනි කාර්යයන්හි, කේත පිරිසැලසුම සරල කිරීම සඳහා Selection Sort උදාහරණයක් ලෙස දක්වයි.

අවසානයට, Selection Sort වේගයෙන් ඉහල නැති වුවද, එහි පරිච්ඡේදය, ලියන-අඩු පරිසරයන්හි ප්‍රයෝජන සහ algorithm මූලික අධ්‍යාපනය සඳහා අත්‍යවශ්‍ය වේ.

💡 Selection Sort ගැන වැඩිදුර දැනගැනීමට අපගේ වෙබ් අඩවියට පිවිසෙන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Selection Sort #Algorithm #Python #Programming #Tech Education