DEV Community

MYTC
MYTC

Posted on

algorithm ဆိုတာ ?

algorithm ဆိုတာ logic စဥ်းစားပုံ စဥ်းစားနည်းပဲ အနားအလည် ဆုံး ဖြစ်အောင် ထမင်းကြော် ရဲ့ algorithm ကို ပြောပြမယ်

ပါဝင်ပစ္စည်းက ထမင်း၊ ကြက်ဥ၊ ဆီ
ကြက်သွန်။

လိုချင်တာ က ထမင်းကြော်

ပါဝင်ပစ္စည်း သိပြီ လိုချင်တာကို လည်း သိပြီ ဆိုရင်

လိုချင်တာကို အဆင့်ဆင့် ဘယ်လို လုပ်ရမလဲ ဆိုတာက algorithm ပဲ

ထမင်းကြော်ရဲ့ algorithm

ဒယ်အိုး တည်ပါ။

ဆီထည့်ပါ။

ကြက်သွန် ဆီသတ်ပါ။

ထမင်းထည့်မွှေပါ၊၊

ကြက်ဥ ထည့်ပါ။

ပြီးရင် အရသာ အတွက် အချို အငန် အပေါ့ ကိုယ်ကြိုက်သလို ထပ်ထည့်ပေါ့

algorithm ဆိုတာ ဘာမှ မဟုတ်ဘူး လိုချင်တာ ဖြစ်ချင်တာကို တစ်ဆင့်ပြီး တစ်ဆင့် ဘယ်လို လုပ်မလဲ ဆိုတာကို စဥ်းစားတာပဲ

ထမင်းကြော် တယ့်အခါ မှာ ဒယ်အိုးတည်ပြီး ထမင်းထည့်မွှေ လို့ မရဘူး အဲ့လို လုပ်တယ်ဆိုရင် အဲ့ တာ Algorithm မှားနေ တာပဲ

Algorithm ဆိုတာ သိပြီဆိုရင် Algorithm တစ်ခု ရဲ့ Performance ကို တိုင်းတာတဲ့
Big-O Notation ဆိုတာ ကို ဆက်လေ့လာ ထားရမယ်

program တစ်ခုကို Performance တိုင်းတာတယ့် အခါမှာ ရိုးရိုး အချိန် နာရီ နဲ့သွားပြီး
တိုင်းတာ လို့ မရဘူး ဘာလို့ ဆို computer ရဲ့ Hardware ပေါ် မူတည်ပြီး
အချိန်က ပြောင်းလဲနိုင်လို့ပဲ

Big-O Notation က အချိန် (Time) ကို တိုက်ရိုက်မတိုင်းဘဲ၊ Data ပမာဏ များလာတာနဲ့အမျှ Growth Rate ဘယ်လောက် ပိုကြာသွားမလဲ ဆိုတာကို တိုင်းတာပါတယ်။

Time Complexity: Data များလာရင် ဘယ်လောက် ပိုကြာသွားမလဲ။
Space Complexity: Data များလာရင် RAM (Memory) ဘယ်လောက် ပိုစားမလဲ။

ဆိုပြီး အဓိက အပိုင်း ၂ ပိုင်းနဲ့ တိုင်းတာ လေ့ ရှိတယ်

ထမင်းကြော်ဥပမာ နဲ့ Big-O Notation ကို ရှင်းပြ မယ်

ထမင်းကြော် ၁ ပွဲ ကြော် တာ နဲ့ ပွဲ ၁၀၀ ကြော်တာ နဲ့ ဘယ် ဟာက အချိန် ပိုကြာ မလဲ
ရှင်းပါတယ် ပွဲ ၁၀၀ ကြော် တာက အချိန်ပိုကြာ မှာ ပေါ့

ထမင်းကြော်တယ့် Algorithm ကို သိပြီးသားဆိုတော့ ပွဲ ၁၀၀ ကြော် ရင် အချိန်အများကြီး မကြာ အောင် လုပ်ဖို့ဆို ဘယ်နည်းလမ်းက အချိန် ပိုကြာမလဲ ဆိုတာ သိရမယ်
ကြာချိန်ကို သိရဖို့ ဆို Big-O Notation နဲ့ တိုင်းတာ ရတော့ မယ်

အယောက် ၁၀၀ အတွက် ထမင်းကြော်ကို တစ်ခါတည်း ကြော်မလား
၁ ပွဲ ချင်းစီ ကြော်မလား ဆိုတာ စဥ်းစားရတော့ မယ်

၁ ပွဲ ချင်းစီ ခွဲပြီး ကြော်နေ ရင်တော့ အချိန်တွေ အများကြီး ကြာမှာပေါ့

Algorithm က တော့ မှန်တယ် ဒါမယ့် Big-O Notation ကိုသေချာ မသိဘူးဆိုရင် မလို အပ်ပဲ အချိန်အများကြီး ကြာနေ လိမ့်မယ်
programming မှာ ဆို ရင် result တော့ ထွက်တယ် performance တော့ မကောင်းဘူးပေါ့

တစ်ပွဲချင်းစီ ကြော်တာ (Linear Time - O( n )): လူ ၁၀၀ အတွက် အခါ ၁၀၀ ကြော်ရမယ်။ လူများရင် များသလောက် အချိန်ကြာမယ်။

O( 1 ),O( n ) ဆိုတာက Big-O Type တွေ ကျန်တာ တွေ ရှိသေးတယ် သိချင်ရင်တော့ ကိုယ့်ဘာသာ ဆက်ပြီးလေ့လာကြည့် ကြပါ

Top comments (0)