နယူး algorithms သည်အခြေခံနှင့်အလိုလိုသိသော string matching method တစ်ခုဖြစ်သည်။ algorithm သည်စာသား၏ဇာတ်ကောင်များကိုစာသား၏ပထမဇာတ်ကောင်ကိုစာသား၏ပထမ ဦး ဆုံးဇာတ်ကောင်နှင့်စာသား၏အဆုံးကိုတွေ့နိုင်သည်။
အောက်ဖော်ပြပါ PHP ကို အသုံးပြု. Naive String နှင့်ကိုက်ညီသော algorithm ၏နမူနာကုဒ်ဖြစ်သည်။
function naive_search($text, $pattern) {
$n = strlen($text);
$m = strlen($pattern);
for ($i = 0; $i <= $n - $m; $i++) {
$j = 0;
while ($j < $m && $text[$i + $j] == $pattern[$j]) {
$j++;
}
if ($j == $m) {
return $i;
}
}
return -1;
}
function သည် string parameters နှစ်ခုကိုလက်ခံသည်, $ စာသားကိုရှာဖွေရန်စာသားကိုရှာဖွေရန်စာသားသည်ပုံစံနှင့်ကိုက်ညီမည့်ပုံစံဖြစ်သည်။ algorithm သည်စာသားနှင့်ပုံစံဇာတ်ကောင်ကိုစာလုံးအသေးဖြင့်အက္ခရာစဉ်ဖြင့်နှိုင်းယှဉ်ထားသည်။ ပွဲအောင်မြင်သောအခါ၎င်းသည်ပထမအကြိမ်ဖြစ်စဉ်ကိုပြန်လည်ရောက်ရှိလာပြီးမကိုက်ညီပါက၎င်းသည်ပြန်လည်ရောက်ရှိသည်။
function တွင် $ n နှင့် $ မီတာသည်စာသားနှင့်ပုံစံတို့၏အရှည်ကိုအသီးသီးကိုယ်စားပြုသည်။ အပြင်ဘက်တွင်ကွင်းဆက်သည်စာသား၏ scan အကွာအဝေးကိုထိန်းချုပ်သည်။ ကျန်အပိုင်းသည်ပုံစံအရှည်နှင့်ကိုက်ညီရန်လုံလောက်သည်။ Inner Loop သည်စာသားကိုပုံစံဖြင့်ပုံစံဖြင့်ပုံဖော်ခြင်းကိုပုံဖော်ခြင်းနှင့်နှိုင်းယှဉ်လျှင်မတိုက်ဆိုင်မှုသည်မတိုက်ဆိုင်မှုသို့မဟုတ်ပွဲပြီးစီးသည်အထိနှင့်နှိုင်းယှဉ်ထားသည်။ ပွဲစဉ်အောင်မြင်သောအခါအစအညွှန်းကိန်းကိုပြန်ပို့ပါ။ မဟုတ်ရင် -1 loop အဆုံးသတ်ပြီးနောက် -1 ပြန်လာလိမ့်မည်။
နုံ algorithms များကိုစာသားတွင်အလွှာတစ်ခုရှိ, နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$text = "Hello, world!";
$pattern = "world";
$result = naive_search($text, $pattern);
echo $result; // ထုတ်လုပ်ခြင်း 7
ဤဥပမာတွင် $ စာသားသည် target string နှင့် $ ပုံစံဖြစ်သည်။ function ကိုပြန်လာတန်ဖိုးသည်အလွှာပထမ ဦး ဆုံးပေါ်လာသည့်နေရာ၏အညွှန်းကိန်းဖြစ်သည်။
ရိုးရှင်းသော string ရှာဖွေမှုများအပြင်, နုံ algorithms သည်ပုံမှန်စကားရပ်အခြေပြုရှာဖွေမှုကဲ့သို့သောပုံစံကိုက်ညီမှုများကိုလည်းကူညီနိုင်သည်။ အောက်ပါဥပမာသည် HTML code ရှိလင့်ခ်များကိုမည်သို့ရှာရမည်ကိုပြသသည်။
$html = "<html><body><a href='http://example.com'>Example</a></body></html>";
$pattern = "<a href='(.*?)'>(.*?)</a>";
preg_match_all("/$pattern/s", $html, $matches);
print_r($matches); // ထုတ်လုပ်ခြင်း匹配结果
ဤဥပမာတွင်ပုံမှန်အသုံးအနှုန်းပုံစံကို HTML ရှိလင့်ခ်များအားလုံးကိုရှာဖွေပြီးကိုက်ညီသည့် Array ရလဒ်များကိုပြန်ပို့ရန်အသုံးပြုသည်။
နုံ algorithm ၏ရှုပ်ထွေးမှုသည် O (NM) သည် O (NM) ဖြစ်သည်။ n သည်စာသားအရှည်ဖြစ်ပြီး M သည်ပုံစံအရှည်ဖြစ်သည်။ စွမ်းဆောင်ရည်သည်အဆင့်မြင့် algorithms နှင့်မတူသော်လည်း၎င်း၏ဖွဲ့စည်းပုံသည်ရိုးရှင်းပြီးနားလည်ရန်လွယ်ကူသည်။ တိုတောင်းသော MODE string string ကိုရှာဖွေခြင်းအတွက်စွမ်းဆောင်ရည်သည်လက်ခံနိုင်ဖွယ်ရှိသည်။ သို့သော် mode string ၏အရှည်တိုးလာသည်နှင့်အမျှစွမ်းဆောင်ရည်သိသိသာသာကျဆင်းသွားသည်မှာသိသိသာသာကျဆင်းသွားသည်။
algorithm နှင့်ကိုက်ညီမှုအရှိဆုံး string နှင့်ကိုက်ညီသောအရာနှင့်ကိုက်ညီသော algorithm တွင်ရိုးရိုးရှင်းရှင်းနှင့်ထိုးထွင်းသိမြင်မှုအကောင်အထည်ဖော်မှု၏အားသာချက်များရှိပြီးအခြေခံပုံစံရှာဖွေရေးလုပ်ငန်းများအတွက်သင့်တော်သည်။ ၎င်းသည်စာသားနှင့်ပုံစံများကိုရှင်းရှင်းလင်းလင်းဖြစ်စဉ်တစ်ခုရရှိရန်ဇာတ်ကောင်ဖြင့်အက္ခရာများဖြင့်နှိုင်းယှဉ်သည်။ ထိရောက်မှုရှိသည့်အကန့်အသတ်များရှိသော်လည်း၎င်းသည်လက်တွေ့ကျသောအသုံးချမှုများအတွက်လက်တွေ့ကျသောတန်ဖိုးများ,