Recursion

ပထမဆုံး Recursion problem တွေဖြေရှင်းတော့မယ်ဆို call stack ဆိုတာဘာလဲသိဖို့လိုတယ်။

သင်က စာကြည့်တိုက်တစ်ခုမှာ စာဖတ်နေတယ်၊ ဒါမယ့် အချိန်က သိပ်မရှိတော့ဘူး။ အဲ့တော့ မနက်ဖြန်ကျရင် ထပ်ဖတ်ဖို့ စာအုပ်သုံးအုပ်ထဲက ခေါင်းစဉ်တစ်ခုစီ မှတ်သွားချင်တယ်။ ပထမစာအုပ်ရဲ့ စာမျက်နှာ 10 မှာ ချမ်းသာတဲ့လူတွေရဲ့အလေ့အကျင့်များ ဆိုတဲ့ခေါင်းစဉ်လေးကိုစိတ်ဝင်စားသွားပြီး marker လေးမှတ်ထားတယ်။ နောက်စာအုပ်တစ်ခုရဲ့ page 50 မှာ atom တွေအလုပ်လုပ်ပုံ ဆိုတဲ့ ခေါင်းစဉ်တွေ့တော့ စိတ်ဝင်စားပြန်ရော။ marker လေးမှတ်ထားမယ်။ နောက်စာအုပ်တစ်အုပ်ထပ်ကြည့်တော့ page 35 မှာ ဝိတ်ချနည်းလေးခု ဆိုတဲ့ ခေါင်းစဉ်လေးကိုစိတ်ဝင်စားပြန်ရော အဲ့တော့ marker လေးချန်ထားပြီး အိမ်ပြန်သွားရော။ ပြီးတော့ စာအုပ်တစ်အုပ်ကို marker မှတ်ပြီးတိုင်း box လေးတစ်ခုတည်း ဒေါင်လိုက်သိမ်းထားတယ်။

source from internet

အဲ့တော့ Base case က စာအုပ်သုံးအုပ် marker မှတ်ပြီးသွားရင် ဖြစ်ပါတယ်။ box ကတော့ call stack ပဲ ဖြစ်ပါတယ်။ call stack ဆိုတာ function တွေကို base case မရောက်မချင်းမှတ်ပေးထားတဲ့အရာပါ။

တကယ့် coding example နဲ့ကြည့်ရအောင်။
ပထမဆုံး example က factorial number ရှာတာ။ 3 ရဲ့ factorial ဆိုတာနောက်က ဂဏန်းတွေအကုန်လုံးနဲ့မြှောက်ထားတဲ့တန်ဖိုး။ 5 ဆို 120 ဘာလို့လဲဆိုတော့ 1×2×3×4×5 မို့လို့ပါ။
ဒါက factorial example ရဲ့ code နဲ့အလုပ်လုပ်ပုံကို call stack နဲ့အဆင့်ဆင့်ရေးပြထားပါတယ်။

နောက် example က fibonacci sequence တွေကိုရှာတာ fibonacci ဆိုတာ နောက်ကိန်းနှစ်လုံးပေါင်းခြင်းရဲ့ result. 1,1,2,3,5,8,13 အဲ့တော့ 4 နေရာက fibonacci ဂဏန်းဆိုရင် 3 အဲ့လိုပါ။
call stack နဲ့မဟုတ်ပဲ Tree structure ပုံစံဘာလို့ပြလဲဆိုတော့ function ကိုနှစ်ခါထပ်ခေါ်လို့ပါ။

Base Case ကအရေးကြီးပါတယ်။ မဟုတ်ရင် infinite loop ထဲရောက်သွားမှာပါ။ 

Like and Share and Follow!

Popular posts from this blog

Data Structure introduction

Algorithm basic examples

Dom introduction