နုံ algorithm သည်အခြေခံနှင့်အသုံးများသော string နှင့်ကိုက်ညီသောနည်းလမ်းဖြစ်သည်။ အဓိကအားဖြင့်ပုံစံရှာဖွေခြင်းအတွက်အသုံးပြုသည်။ အဓိကအကြံဥာဏ်မှာစာသား string တွင်ဇာတ်ကောင်များရှိဇာတ်ကောင်များနှင့်ပုံစံ strings ကိုဇာတ်ကောင်များနှင့်နှိုင်းယှဉ်ခြင်းဖြစ်သည်။ အကယ်. ၎င်းနှင့်ကိုက်ညီပါကလိုက်ဖက်သည့်အလွှာအတိအကျသို့မဟုတ်စာသားဖြတ်သန်းမှုများကိုတွေ့သည်အထိနောက်ဆက်တွဲဇာတ်ကောင်များကိုဆက်လက်နှိုင်းယှဉ်ပါ။
အောက်ဖော်ပြပါ PHP ဘာသာစကားဖြင့်အကောင်အထည်ဖော်သည့်နယူးယောင်ကြိုးယှဉ်ပြိုင်မှု 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;
}
ဤလုပ်ဆောင်မှုသည် string parameters နှစ်ခုကိုရရှိသည်, $ စာသားသည်ရှာဖွေရန်စာသား string ကိုကိုယ်စားပြုသည်, $ ပုံစံသည်ရှာဖွေတွေ့ရှိရန်ပုံစံဖြစ်သည်။ အဆိုပါလုပ်ဆောင်ချက်သည်စာသား string ကိုပထမ ဦး ဆုံးပုံစံပေါ်လာသည့်အနေအထားကိုပြန်ပို့သည်။ algorithm သည် Loop character-by-character-character နှင့်နှိုင်းယှဉ်လျှင်ရိုးရှင်းသောနှင့်ရှင်းလင်းသောကိုက်ညီသောယုတ္တိဗေဒကိုသဘောပေါက်သည်။
function ကပထမ ဦး ဆုံးစာသား string ကိုနှင့်ပုံစံ strings ၏အရှည်ကိုတွက်ချက်ပြီး variable တွေကို $ n $ နှင့် $ မီတာ $ အသီးသီးအတွက်တန်ဖိုးများကိုသတ်မှတ်ပါတယ်။ အပြင်ဘက်ကွင်းဆက်သည် text string ၏ပထမ ဦး ဆုံးဇာတ်ကောင်မှပထမ ဦး ဆုံးအနေဖြင့်ဒေါ်လာအလိုက်ဒေါ်လာဒေါ်လာအများဆုံးဖြင့်စတင်ရန်, နောက်ဆက်တွဲနှိုင်းယှဉ်မှုများသည်စာသားအရှည်ထက်မကျော်လွန်နိုင်ပါ။
အတွင်းကွင်းဆက်သည်စာသားနှင့်ပုံစံ strings များကိုအက်ခရာဖြင့်နှိုင်းယှဉ်ရန်အသုံးပြုသည်။ လိုက်ဖက်သည့်အခါ $ j $ သည်တိုးပွားလာသည် $ j $ သည်ဒေါ်လာ 1 ဒေါ်လာနှင့်ညီသည်ဆိုပါကပွဲစဉ်ကိုရှာတွေ့ပြီးပွဲစဉ်စတင်အနေအထားကိုပြန်လည်ရရှိထားသည်။
အဆိုပါပွဲစဉ်ကိုဖြတ်သန်းအဆုံးမှာရှာမတွေ့ပါက function ကိုပြန်ရောက်သည်။
နုံ algorithms သည်အဓိကအားဖြင့်အခြေခံကြိုးကိုက်ညီသောပြ problems နာများတွင်စာသားများကိုသတ်မှတ်ထားသောအလွှာတစ်ခုရှိမရှိရှာဖွေခြင်းရှိမရှိရှာဖွေခြင်းကဲ့သို့သောအခြေခံ string နှင့်သက်ဆိုင်သောပြ problems နာများတွင်အသုံးပြုသည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
$text = "Hello, world!";
$pattern = "world";
$result = naive_search($text, $pattern);
echo $result; // ထုတ်လုပ်ခြင်း 7
ဤဥပမာတွင် function သည် New Return Value နှင့်အတူစာသားထဲမှ "World" ၏အနေအထားကိုအောင်မြင်စွာရှာဖွေနိုင်ခဲ့သည်။
အခြေခံ string နှင့်ကိုက်ညီသည့်အနေဖြင့်နုံ algorithms များကိုပုံမှန်အသုံးအနှုန်းနှင့်ကိုက်ညီမှု, HTML tag ရှာဖွေခြင်းများနှင့်အခြားအခြေအနေများစသည့်ပုံစံရှာဖွေမှုများတွင်လည်းအသုံးပြုနိုင်သည်။ အောက်ပါဥပမာသည် HTML စာမျက်နှာရှိလင့်ခ်များကိုမည်သို့ရှာဖွေရမည်ကိုပြသသည်။
$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 ရှိလင့်ခ်အမှတ်အသားများကို Extract လုပ်ရန်ပုံမှန်အသုံးအနှုန်းများနှင့် PHP built-in function များကိုအသုံးပြုသည်။
နုံ algorithm ၏ရှုပ်ထွေးသောအချိန်သည် $ o (NM) $, $ n $ သည် text length နှင့် $ M $ သည်ပုံစံအရှည်ဖြစ်သည်။ ၎င်း၏ရိုးရိုးရှင်းရှင်းနှင့်ထိုးထွင်းသိမြင်မှုအကောင်အထည်ဖော်မှုကြောင့်၎င်း၏ထိရောက်မှုသည်အတော်လေးနိမ့်သော်လည်း, ပိုမိုရှည်လျားသောပုံစံ strings နှင့်ဆက်ဆံရာတွင်စွမ်းဆောင်ရည်တိုးတက်စေရန်ပိုမိုထိရောက်သောကိုက်ညီသော algorithms ကိုပိုမိုလွယ်ကူစွာထည့်သွင်းစဉ်းစားသင့်သည်။
နုံ algorithm သည်ရိုးရှင်းသောနှင့်ထိရောက်သော string နှင့်ကိုက်ညီသောနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးသည် Php Phot ဥပမာများမှတဆင့် AlgorithM အခြေခံမူများ, ကုဒ်အကောင်အထည်ဖော်မှုနှင့် application application ကိုအသေးစိတ်ဖော်ပြထားသည်။ algorithm တွင်စွမ်းဆောင်ရည်ကန့်သတ်ချက်များရှိသည်ရှိသော်လည်း,