Moore Voting algorithm သည်အဓိကအားဖြင့်အချိန်၏ထက်ဝက်ကျော်ပေါ်လာသည့် array တစ်ခုတွင် element များကိုရှာဖွေရန်အဓိကအားဖြင့်အသုံးပြုသော algorithm ဖြစ်သည်။ ဤ algorithm သည်ကိုယ်စားလှယ်လောင်းများကိုရေတွက်ခြင်းနှင့်ပြောင်းလဲနေသော update ကိုဆင့်မွမ်းမံခြင်းမှတစ်ဆင့်ဖြတ်သန်းသောအရာများကိုရှာဖွေတွေ့ရှိနိုင်သည့်ဒြပ်စင်အများစုကိုဖော်ထုတ်နိုင်ခဲ့သည်။ ဤဆောင်းပါးသည် PHP ဘာသာစကားကို Moore Voting Method ၏ application method ၏တိကျသောအကောင်အထည်ဖော်မှုဖြစ်စဉ်များကိုရှင်းပြရန်ဥပမာတစ်ခုအဖြစ်အသုံးပြုလိမ့်မည်။
Moore ၏မဲပေးခြင်းနည်းလမ်း၏အဓိကအယူအဆမှာမတူညီသောဒြပ်စင်များ၏သွဇာလွှမ်းမိုးမှုကို "တန်ပြန်" ရန်ဖြစ်သည်။ Algorithm သည် Variable နှစ်ခုကိုထိန်းသိမ်းထားသည်။ ကိုယ်စားလှယ်လောင်းဒြပ်စင်နှင့်ကောင်တာများ။ Array ကိုဖြတ်သန်းသွားသောအခါကောင်တာသည်သုညဖြစ်လျှင်လက်ရှိဒြပ်စင်ကိုကိုယ်စားလှယ်လောင်းဒြပ်စင်အဖြစ်သတ်မှတ်ပြီး 1 ကို 1 နှင့်နှိုင်းယှဉ်ပါ။ လက်ရှိ element သည်ကိုယ်စားလှယ်လောင်းဒြပ်စင်နှင့်ညီမျှပါကကောင်တာကိုတစ်ခုတိုးပွားလာသည်။ ဒီလိုမှမဟုတ်ရင်ကောင်တာတစ် ဦး အားဖြင့်လျှော့ချဖြစ်ပါတယ်။ Traversal ပြီးစီးပြီးနောက်ကိုယ်စားလှယ်လောင်း Element သည်တောင်းဆိုထားသည်။
ဤ algorithm သည် array များအတွက်မသင့်တော်သော်လည်းအောက်ပါအခြေအနေများတွင်လည်းကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုနိုင်သည်။
အောက်ဖော်ပြပါဥပမာသည် PHP တွင် PHP ရှိ Moore မဲပေးမှုနည်းလမ်းကိုအကြိမ်ထက်ဝက်ကျော်ပါ 0 င်သော array ထွက်ရှာရန်မည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည်။
ကိုယ်စားလှယ်လောင်းများနှင့်တန်ပြန် variable များကို define array နှင့် 1) ကိုစတင်သည်။
function findMajorityElement($arr) {
$candidate = $arr[0];
$count = 1;
$len = count($arr);
// အဆိုပါခင်းကျင်းမှတဆင့်ကြားမှာ
for ($i = 1; $i < $len; $i++) {
// ကောင်တာဖြစ်ပါတယ်0နာရီ,ကိုယ်စားလှယ်လောင်းဒြပ်စင် reset
if ($count == 0) {
$candidate = $arr[$i];
$count = 1;
} else {
// လက်ရှိဒြပ်စင်သည်ကိုယ်စားလှယ်လောင်းဒြပ်စင်နှင့်အတူတူဖြစ်သည်,ကောင်တာ Plus1
if ($arr[$i] == $candidate) {
$count++;
} else {
// ကွဲပြားခြားနားသောဒြပ်စင်,တန်ပြန်တားဆီးခြင်း1
$count--;
}
}
}
// ကိုယ်စားလှယ်လောင်းဒြပ်စင်ပြန်လာ
return $candidate;
}
ဥပမာ array နှင့်ခေါ်ဆိုမှုများ:
$arr = [1, 2, 2, 2, 3];
// အများဆုံးဒြပ်စင်ရှာဖွေရန် function ကိုခေါ်ပါ
$majorityElement = findMajorityElement($arr);
echo "အချိန်ထက်ဝက်ကျော်ပုံရသည်သောဒြပ်စင်သည်:" . $majorityElement;
အစီအစဉ်ကိုဖွင့်ပြီးနောက် output ရလဒ်သည် "ဖြစ်ပျက်မှု၏ထက်ဝက်ကျော်နှင့်အတူဒြပ်စင်သည် - 2" သည် 2 ဗွီဒီယိုတွင်နံပါတ် 2 ခုကိုဖော်ပြထားသည်။
Moore ၏မဲပေးခြင်းနည်းလမ်းသည်တိကျသောဒြပ်စင်အများစုရှာဖွေခြင်းပြ problem နာကိုဖြေရှင်းရန်အတွက်အထူးသဖြင့်သင့်တော်သောအတိုချုပ်နှင့်ထိရောက်သော algorithm တစ်ခုဖြစ်သည်။ algorithm ၏အဓိကအကြံဥာဏ်နှင့်အကောင်အထည်ဖော်မှုဆိုင်ရာယုတ္တိဗေဒကိုနားလည်ခြင်းအားဖြင့်၎င်းသည်ရွေးကောက်ပွဲမဲရေတွက်ခြင်း, ဒီဆောင်းပါးပါအကြောင်းအရာက Moore Voting Method ကိုအကောင်အထည်ဖော်ဖို့ PHP ကိုပိုကောင်းအောင်လုပ်ဖို့ကူညီပေးနိုင်မယ်လို့မျှော်လင့်ပါတယ်။