အခန်း ၁ - Algorithms မိတ်ဆက်

Computer Science ဘာသာရပ်ကို လေ့လာလိုက်စားသည့် သူတွေ အတွက် Algorithm ဆိုတာ မသိမဖြစ် လေ့လာရမည့် ဘာသာရပ် တစ်ခု ဖြစ်ပါတယ်။ Developer တစ်ယောက်ရဲ့ အရည်အချင်း၊ သူ ဘယ်လောက်ထိ စဉ်းစားတွေးခေါ်နိုင်ပြီး coding ပြဿနာတွေကို ဖြေရှင်းနိုင်သလဲဆိုတာကို algorithm ပုစ္ဆာများဖြင့် interview များတွင် မကြာခဏ တိုင်းတာလေ့ရှိပါတယ်။

Algorithm ဆိုတာ ဘာလဲ

Algorithm ဆိုတာ ပြဿနာတစ်ခုကို ဖြေရှင်းရန်အတွက် စနစ်တကျ သတ်မှတ်ထားသော အဆင့်ဆင့် လုပ်ဆောင်ရမည့် ညွှန်ကြားချက်များဖြစ်ပါတယ်။ ဥပမာ အားဖြင့် ကျွန်တော်တို့ နေ့စဥ် ဘဝ တွေ မှာ ဟင်းချက်တာ ဖြစ်ဖြစ် ကားမောင်းတာ ဖြစ်ဖြစ် အဆင့်ဆင့် လုပ်ဆောင်ရပါတယ်။ ဥပမာ ဟင်းချက်နည်း တစ်ခု က Algorithm တစ်ခုပါပဲ။

သို့ပေမယ့် computer algorithms တွေဟာ အောက်ပါ ဂုဏ်သတ္တိတွေ ရှိရပါမယ်။

  1. Input : လုပ်ဆောင်ရမည့် အချက်အလက်တွေ ရှိရမည်။
  2. Definiteness : အဆင့်တိုင်းဟာ ရှင်းလင်း တိကျရမည်။
  3. Finiteness: အဆုံးမရှိ ဘဲ လုပ်ဆောင်နေတာမျိုး မဟုတ်ဘဲ တစ်နေရာမှာ အလုပ်ပြီးမြောက်ပြီး ရပ်တန့် နေရမည်။
  4. Output: အနည်းဆုံး ရလဒ် တစ်ခု ထွက်လာရမည်။
  5. Effectiveness: လက်တွေ့ လုပ်ဆောင်လို့ရသည့် အဆင့်တွေ ဖြစ်ရမည်။

Algorithm ဘာကြောင့်အရေးကြီးလဲ

ယနေ့ခေတ်မှာ Software တွေဟာ ရှုပ်ထွေးလာပါတယ်။ ဥပမာ Facebook မှာ Friend Suggestion, Google Map မှာ route ပြတာ စသည့် စနစ်တွေ ရဲ့ နောက်ကွယ်မှာ အလွန် ရှုပ်ထွေးပြီး အရမ်းကို ကောင်းမွန်သည့် algorithm တွေ အလုပ်လုပ်နေပါတယ်။ ကျွန်တော်တို့တွေ က နည်းလမ်း မမှန်ဘဲ code တွေကို ရေးလိုက်မယ် ဆိုရင် process တစ်ခုက ပုံမှန်ထက် လုပ်ဆောင်ရမည့် အလုပ်ပမာဏ များလာပြီး နှေးသွားတာ ဒါမှမဟုတ် ပိုပြီး powerful ဖြစ်သည့် စက်တွေ လိုအပ်တာမျိုးတွေ ဖြစ်လာနိုင်တယ်။ ဒါကြောင့် algorithm ဟာ အလုပ်လုပ် ရုံတင်မကဘဲ အကောင်းဆုံး နဲ့ အမြန်ဆုံး အလုပ်လုပ်ဖို့ အတွက် လေ့လာရခြင်း ဖြစ်ပါတယ်။