ඇල්ගොරිතම යනු කුමක්ද?

ලෝකය ධාවනය කරන්නේ කෙසේදැයි සොයා ගන්න

ඇල්ගොරිතම යනු උපදෙස් මාලාවක් වේ. නිර්වචනය ඇත්ත වශයෙන්ම සරලයි. මෙවැනි ආකාරයේ උපදෙස් ලබා දීම සඳහා ඇල්ගොරිතමයක් පහසුවෙන් කළ හැකිය:

  1. පාරට බැහැලා යන්න
  2. පළමුව නිවැරදි කරන්න
  3. වම් පැත්තෙන් දෙවන නිවස සොයාගන්න
  4. දොරට තට්ටු කරන්න
  5. පැකේජය ලබා ගන්න.

එහෙත් ඇල්ගොරිතමයේ නිර්වචනය සරල වන අතර, එහි සැබෑ අර්ථය හා අපගේ ජීවිතයට බලපාන ආකාරය ඉතා සංකීර්ණ විය හැකිය.

ඇල්ගොරිතම පිළිබඳ උදාහරණයක්

අපේ එදිනෙදා ජීවිතයේ අප භාවිතා කරන ඇල්ගොරිතමයක් පිළිබඳ පොදු උදාහරණයක් වන්නේ වට්ටෝරුවකි. මෙම උපදෙස් මාලාව අපට අවශ්ය වනුයේ අවශ්ය අමුද්රව්ය සහ එම අමුද්රව්ය සමග කළ යුතු දේ පිළිබඳව ය. පහසුයි, හරිද?

එහෙත් මිනුම් කෝප්පය තබා ඇත්තේ කොහේදැයි ඔබ නොදන්නේ නම් කුමක් ද? ඔබට සොයා ගැනීමට ඇල්ගොරිතමයක් අවශ්ය වනු ඇත. මිනුම් කෝප්පයක් භාවිතා කරන ආකාරය පිළිබඳව ඔබට ඇල්ගොරිතමයක් අවශ්ය විය හැකිය.

එබැවින් ඇල්ගොරිතම යනු උපදෙස් මාලාවක් වන අතර, එම උපදෙස් අර්ථ නිරූපණය කිරීමට කවුරුන් හෝ කුමක් කළ යුතු ද යන්න සැලකිල්ලට ගත යුතුය. නිදසුනක් වශයෙන්, ඔබගේ නිවසෙන් ආසන්නම සිල්ලර සාප්පුව වෙත ලබා ගත හැකි ආකාරය ගැන ඔබ මිතුරෙකු වෙත උපදෙස් ලබා දෙන්නේ නම්, ඔබේ මිතුරා විසින් ඔබේ නිවස පිහිටා ඇති ස්ථානය දැනගන්නේ නම් එම ගබඩාව ලබා ගත හැක්කේ කෙසේද යන්න පමණක් දැන ගනු ඇත. ඔවුන් වෙනත් මිතුරෙකුගේ නිවසේ සිට එම සාප්පු සොරකමේ ගබඩාව සොයා ගැනීමට නොහැකිය.

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

ඇල්ගොරිතම වෙනස්කම් වෙනස් කිරීම

මුල්ම ඇල්ගොරිතම නිර්මාණය කළ බුබුල වර්ගයකි. Bubble sort යනු සංඛ්යාත්මක අනුපිළිවෙලවල් එකිනෙකා සමඟ සැසඳීමෙන් හා දත්ත අවශ්ය විටදී හුවමාරු කර ගැනීමෙන් දත්ත සමූහයක් හරහා අංකයන්, අකුරු හෝ වචන අනුපිළිවෙලට එක් කිරීම සඳහා ක්රමයකි.

අගයන් කිසිවක් හුවමාරු කර ගැනීමෙන් තොරව ඇල්ගොරිතම සම්පූර්ණ ලැයිස්තුවෙන් ගමන් කළ හැකි අතර, මෙම අගයන් නිවැරදිව වර්ග කර ඇත. මෙම වර්ගයේ ඇල්ගොරිතම බොහෝවිට එය නැවත සංකෝචන ඇල්ගොරිතමයක් ලෙස හැඳින්වේ. එය කර්තව්යය සම්පූර්ණ කරන තෙක් එය මත රැඳී සිටින නිසාය.

ඇල්ගොරිතම සරල ලෙස පෙනෙන්නට ඇත:

  1. පළමු අගය වෙත යන්න.
  2. අවශ්ය වන්නේ නම් ඊලඟ අගය හා swap ස්ථානය අනුව එම අගය පරීක්ෂා කරන්න
  3. ඊළඟ අගය වෙත ගොස් සැසඳීම් නැවත කරන්න.
  4. ලැයිස්තුව අවසානයේ නම්, ලුප්ත තුළ ඕනෑම අගය හුවමාරු කර ඇත්නම්, ඉහළට ආපසු යන්න.

එහෙත් බුබුල වර්ගයන් වටිනාකම් වර්ගීකරණය කිරීමේදී වඩාත්ම කාර්යක්ෂම ක්රමයක් බවට පත්විය නොහැකි විය. කාලය ඉක්බිතිව හා ඉක්මනින් සංකීර්ණ කාර්යයන් කිරීමට පරිගණකවලට වඩාත් පහසුවෙන් හැකි වූ අතර නව වර්ග කිරීමේ ඇල්ගොරිතම නිකුත් විය.

එක් ඇල්ගොරිතමයක් පළමු ලැයිස්තුව හරහා ස්කෑන් කරන අතර අනෙකුත් වර්ගීකරණය කළ අගයන් දෙවන ලැයිස්තුවකි. මෙම ක්රමය එකම මුල් ලැයිස්තුවෙන් තනි අගයක් ලබා දෙයි, සහ එක් එක් අගය සමග, එය දෙවන අගය ලැයිස්තුගත කරන තුරු නිවැරදිව සොයා ගන්නා තෙක් දෙවන ලැයිස්තුව හරහා ලූනු කරනු ඇත. සාමාන්යයෙන්, එය බුබුල වර්ගීකරණ ක්රමය භාවිතා කිරීම වඩා කාර්යක්ෂම වේ.

ඇල්ගොරිතම ඇත්තටම පිස්සු හැදෙන්න පුළුවන්. එසේත් නැතිනම් එය ඇත්ත වශයෙන්ම සිත්ගන්නා සුළුය.

බබල් වර්ගීකරණ ක්රමය බොහෝ ආකාර වලින් වර්ග කිරීම සඳහා වඩාත්ම අකාර්යක්ෂම ක්රමයන් ලෙස සැලකේ. නමුත්, මුල් ලැයිස්තුව නිවැරදි ලෙස පෙරළා ඇත්නම්, බුබුල වර්ගීකරණය වඩාත් කාර්යක්ෂම එකක් විය හැකිය. ඒ නිසා, එම අවස්ථාවේ බුබුල වර්ගීකරණ ඇල්ගොරිතම ලැයිස්තුව එක් වරක් හරහා ගොස් එය නිවැරදිව වර්ගීකරණය තීරණය කරනු ඇත.

අවාසනාවකට මෙන්, අපගේ ලැයිස්තුව ලැයිස්තුගත කර ඇත්දැයි අප සැම විටම නොදනී. එබැවින්, ලැයිස්තු විශාල සංඛ්යාවක් හරහා සාමාන්යයෙන් භාවිතා කිරීමට වඩාත් කාර්යක්ෂම වනු ඇති ඇල්ගොරිතමයක් තෝරා ගත යුතුය.

Bubble Sort වලින් අපි ඉගෙන ගන්නා දේ

ෆේස්බුක් ඇල්ගොරිතම සහ එදිනෙදා ජීවිතයේ තවත් බොහෝ දේ

ඇල්ගොරිතම සෑම දිනකම මිනිසුන්ට උපකාර කරමින් සිටී. ඔබ වෙබ් ගවේෂණය කරන විට, හොඳම සෙවුම් ප්රතිඵල සොයා ගැනීමට උත්සාහ කරමින් ඇල්ගොරිතම වැඩ කරමින් සිටී. ඔබේ ස්මාර්ට් ජංගම දුරකතනයේ උපදෙස් සඳහා ඇල්ගොරිතම තීරණය කිරීමට හොඳම මාර්ග තීරණය කරයි. ඔබ ෆේස්බුක් ගවේෂණය කරන විට, අපේ මිතුරාගේ ෆේස්බුක් අතුරින් අපට වඩාත් වැදගත්වන ඇල්ගොරිතම තීරණය කරනු ලැබේ. (අපගේ ෆේස්බුක් ෆේස්බුක් වඩාත්ම කැමති ආකාරයට අපගේ මිතුරන් සොයා නොයනු ඇතැයි අපි විශ්වාස කරමු!)

නමුත් අපේ සිතුවිලි ඇසුවොත් අපට අපේ පරිගණක ජීවිතයෙන් ඔබ්බට වඩා උපකාරී වනු ඇත. හොඳ සැන්ඩ්විච් හදන්න අපිට උදව් කරන්න පුළුවන්.

අපි එක් පාන් පෙත්තක් හා මෙයොනීස් එකක් මත අබ කපන ලද පාන් පෙති දෙකක් ආරම්භ කරමු. මම, මෙයොනීස් සමග රොටි මත චීස් පෙත්තක් දමා, එම සලාද කොළ, සලාද කොළ දෙකක්, තක්කාලි පෙති දෙකක් සහ එය මත අබ ඇටය සමඟ එය කපා. හොඳ සැන්විච්, හරිද?

අනිවාර්යයෙන්ම මම එය අනුභව කරනවා නම්. නමුත් මම ටික වේලාවකට මේසය මත තබන්නේ නම් පාන් පෙත්තක් එම තක්කාලි ටිකක් පොඟවා ගැනීමෙන් වළක්වා ගත හැකිය. මම බලාපොරොත්තු සුන් කරන්නේ නැහැ. මම සැණින් සාදනු ලැබීමට වසර ගණනාවක් ගත කළත්, මම එය කළ පසු, වඩා හොඳ සැන්ඩ්විච් සෑදීම සඳහා මගේ ඇල්ගොරිතම වෙනස් කිරීමට ක්රම ගැන සිතා ගත හැකිය.

උදාහරණයක් ලෙස, මම තක්කාලි ඉවත් කරන්න පුළුවන්. ඒත් මම ඒ තක්කාලි රසයෙන් මිදීමට අවශ්ය නැහැ. ඒ වෙනුවට, මම රොටි සහ සලාද කොළ පසු සැන්ඩ්විච් මත තක්කාලි දමන්න පුළුවන්. මෙම සලාද කොළ තක්කාලි හා රොටි අතර ආරක්ෂිත බාධකයක් සාදයි.

මෙලෙස ඇල්ගොරිතම වෙනස් වෙයි. ඇල්ගොරිතමයක් සඳහා පරිගණකයක් මඟින් ඇල්ගොරිතමයක් ක්රියාත්මක නොකළ යුතුය. ඇල්ගොරිතම යනු ක්රියාවලියක් වන අතර අප වටා ඇති ක්රියාවලියයි.