Boyer-Moore algorithmMain featuresperforms the comparisons from right  การแปล - Boyer-Moore algorithmMain featuresperforms the comparisons from right  ไทย วิธีการพูด

Boyer-Moore algorithmMain featuresp

Boyer-Moore algorithm


Main features
performs the comparisons from right to left;
preprocessing phase in O(m+sigma) time and space complexity;
searching phase in O(mn) time complexity;
3n text character comparisons in the worst case when searching for a non periodic pattern;
O(n / m) best performance.
Description
The Boyer-Moore algorithm is considered as the most efficient string-matching algorithm in usual applications. A simplified version of it or the entire algorithm is often implemented in text editors for the «search» and «substitute» commands.
The algorithm scans the characters of the pattern from right to left beginning with the rightmost one. In case of a mismatch (or a complete match of the whole pattern) it uses two precomputed functions to shift the window to the right. These two shift functions are called the good-suffix shift (also called matching shift and the bad-character shift (also called the occurrence shift).
Assume that a mismatch occurs between the character x[i]=a of the pattern and the character y[i+j]=b of the text during an attempt at position j.
Then, x[i+1 .. m-1]=y[i+j+1 .. j+m-1]=u and x[i] neq y[i+j]. The good-suffix shift consists in aligning the segment y[i+j+1 .. j+m-1]=x[i+1 .. m-1] with its rightmost occurrence in x that is preceded by a character different from x[i] (see figure 13.1).
figure 13.1
Figure 13.1. The good-suffix shift, u re-occurs preceded by a character c different from a.
If there exists no such segment, the shift consists in aligning the longest suffix v of y[i+j+1 .. j+m-1] with a matching prefix of x (see figure 13.2).
figure 13.2
Figure 13.2. The good-suffix shift, only a suffix of u re-occurs in x.
The bad-character shift consists in aligning the text character y[i+j] with its rightmost occurrence in x[0 .. m-2]. (see figure 13.3)
figure 13.3
Figure 13.3. The bad-character shift, a occurs in x.
If y[i+j] does not occur in the pattern x, no occurrence of x in y can include y[i+j], and the left end of the window is aligned with the character immediately after y[i+j], namely y[i+j+1] (see figure 13.4).
figure 13.4
Figure 13.4. The bad-character shift, b does not occur in x.
Note that the bad-character shift can be negative, thus for shifting the window, the Boyer-Moore algorithm applies the maximum between the the good-suffix shift and bad-character shift. More formally the two shift functions are defined as follows.
The good-suffix shift function is stored in a table bmGs of size m+1.
Let us define two conditions:
Cs(i, s): for each k such that i < k < m, s geq k or x[k-s]=x[k] and
Co(i, s): if s 0 : Cs(i, s) and Co(i, s) hold}
and we define bmGs[0] as the length of the period of x. The computation of the table bmGs use a table suff defined as follows: for 1 leq i < m, suff[i]=max{k : x[i-k+1 .. i]=x[m-k .. m-1]}
The bad-character shift function is stored in a table bmBc of size sigma. For c in Sigma: bmBc[c] = min{i : 1 leq i = 0; --i) {
if (i > g && suff[i + m - 1 - f] < i - g)
suff[i] = suff[i + m - 1 - f];
else {
if (i < g)
g = i;
f = i;
while (g >= 0 && x[g] == x[g + m - 1 - f])
--g;
suff[i] = f - g;
}
}
}

void preBmGs(char *x, int m, int bmGs[]) {
int i, j, suff[XSIZE];

suffixes(x, m, suff);

for (i = 0; i < m; ++i)
bmGs[i] = m;
j = 0;
for (i = m - 1; i >= 0; --i)
if (suff[i] == i + 1)
for (; j < m - 1 - i; ++j)
if (bmGs[j] == m)
bmGs[j] = m - 1 - i;
for (i = 0; i
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
บอยเยอร์-มัวร์อัลกอริธึ



คุณสมบัติหลักดำเนินการเปรียบเทียบจากขวาไปซ้าย;
preprocessing ขั้นตอนใน o (ม. ซิก) เวลาและพื้นที่ซับซ้อนซับซ้อน
ค้นหาขั้นตอนใน o (mn) เวลา
3n เปรียบเทียบตัวอักษรข้อความใน กรณีที่เลวร้ายที่สุดเมื่อค้นหารูปแบบที่ไม่เป็นระยะ.
o (n / เมตร) ประสิทธิภาพที่ดีที่สุด

คำอธิบายอัลกอริทึม Boyer-Moore ถือเป็นขั้นตอนวิธีการจับคู่สายที่มีประสิทธิภาพที่สุดในการใช้งานตามปกติ รุ่นที่เรียบง่ายของมันหรือขั้นตอนวิธีการทั้งหมดมักจะถูกนำมาใช้ในการแก้ไขข้อความสำหรับ«ค้นหา "และ" แทน»คำสั่ง.
ขั้นตอนวิธีการสแกนตัวอักษรของรูปแบบจากขวาไปซ้ายเริ่มต้นด้วยหนึ่งขวาสุดในกรณีที่ไม่ตรงกัน (หรือการจับคู่ที่สมบูรณ์แบบของรูปแบบทั้งหมด) จะใช้สองฟังก์ชัน precomputed ที่จะเปลี่ยนหน้าต่างไปทางขวา ทั้งสองฟังก์ชั่นการเปลี่ยนแปลงที่เรียกว่าการเปลี่ยนแปลงที่ดีต่อท้าย (ที่เรียกว่าการจับคู่การเปลี่ยนแปลงและการเปลี่ยนแปลงที่ไม่ดีตัว (ที่เรียกว่าการเปลี่ยนแปลงที่เกิดขึ้น).
คิดว่าที่ไม่ตรงกันเกิดขึ้นระหว่างตัวละคร x [i] = รูปแบบของตัวอักษรและ y [ij] = b ของข้อความในระหว่างความพยายามในตำแหน่งที่เจ.
แล้ว x [i 1 .. ม. 1] = y [1 ฉันเจ .. เจเมตร-1] = u และ x [i] neq y [i j] กะดีต่อท้ายประกอบด้วยในการจัดตำแหน่งส่วน y [ij 1 .. เจเมตร-1] = x [i 1 .. ม. 1] ด้วยขวาสุดเกิดขึ้นใน x ที่นำหน้าด้วยตัวอักษรที่แตกต่างจาก x [i] (ดูรูป 13.1)

รูป 13.1 รูปที่ 13.1 กะดีต่อท้าย u อีกครั้งเกิดขึ้นนำหน้าด้วยตัวอักษรที่แตกต่างจากค.
ถ้ามีไม่มีส่วนดังกล่าวประกอบด้วยการเปลี่ยนแปลงในแนวทาง v คำต่อท้ายที่ยาวที่สุดของ y [ij 1 .. เจเมตร-1] ด้วยคำนำหน้าจับคู่ x (ดูรูปที่ 13.2).

รูป 13.2 รูปที่ 13.2 กะดีต่อท้ายเพียงคำต่อท้ายของ u อีกครั้งเกิดขึ้นใน x.
กะไม่ดีตัวละครประกอบในการจัดให้ y อักขระข้อความ [ij] กับขวาสุดเกิดขึ้นใน x [0 .. ม. 2] (ดูรูป 13.3)

คิด 13.3 รูปที่ 13.3 กะไม่ดีตัวละครที่เกิดขึ้นใน x. ถ้า y
[ij] ไม่ได้เกิดขึ้นในรูปแบบ x, การเกิดขึ้นของ x ใน y ไม่สามารถรวม y [ij] และปลายด้านซ้ายของหน้าต่างจะสอดคล้องกับตัวละคร ทันทีหลังจาก y [ij]คือ y [ij 1] (ดูรูป 13.4).

รูป 13.4 13.4 คิด กะไม่ดีตัวอักษร b ไม่ได้เกิดขึ้นใน x.
ทราบว่าการเปลี่ยนแปลงที่ไม่ดีตัวสามารถเป็นค่าลบดังนั้นการขยับหน้าต่างขั้นตอนวิธี Boyer-Moore ใช้สูงสุดระหว่างกะดีและไม่ดีต่อท้ายตัว เปลี่ยน อีกอย่างเป็นทางการของทั้งสองฟังก์ชั่นการเปลี่ยนแปลงที่กำหนดไว้ดังต่อไปนี้.
ฟังก์ชั่นการเปลี่ยนแปลงที่ดีต่อท้ายจะถูกเก็บไว้ใน bmgs ตารางเมตรขนาด 1
ให้เรากำหนดเงื่อนไขสอง.
cs (i, s): สำหรับแต่ละ k ดังกล่าวที่ฉัน (i, s): ถ้า s แล้วสำหรับ 0 leq i 0 : cs (i, s) และร่วม (i, s) ถือ}
และเรากำหนด bmgs [0] เป็นความยาวของระยะเวลาของ xคำนวณ bmgs ตาราง suff ใช้ตารางที่กำหนดไว้ดังต่อไปนี้ 1 leq i <เมตร suff [i] = สูงสุด {K: x [ik 1 .. i] = x [ม-k .. ม. 1]}
ฟังก์ชั่นไม่ดีกะตัวถูกเก็บไว้ในตาราง bmbc ขนาดซิก เพื่อคในซิ​​ก: bmbc [C] = นาที {i: 1 leq i .bmbc ตารางและ bmgs สามารถ precomputed ในเวลา o (ม. ซิก) ก่อนที่จะขั้นตอนการค้นหาและต้องใช้พื้นที่พิเศษในการ o (ม. ซิก) ความซับซ้อนเวลาขั้นตอนการค้นหาเป็นกำลังสอง แต่การเปรียบเทียบอักขระข้อความที่ 3n ส่วนใหญ่จะดำเนินการเมื่อการค้นหาสำหรับรูปแบบที่ไม่เป็นระยะ ในตัวอักษรขนาดใหญ่ (เทียบกับความยาวของรูปแบบ) ขั้นตอนวิธีการที่รวดเร็วมากเมื่อค้นหา am-1b พันล้านในขั้นตอนวิธีการที่ทำให้เพียง แต่ o (n / m) ในการเปรียบเทียบซึ่งเป็นขั้นต่ำที่แน่นอนสำหรับขั้นตอนวิธีการจับคู่สตริงใด ๆ ในรูปแบบที่รูปแบบเพียงอย่างเดียวคือการประมวลผลล่วงหน้า.
รหัสค
prebmbc โมฆะ (ถ่าน * x, int เมตร bmbc int []) {
int i;

for (i = 0; ฉัน bmbc [i] = m;
for (i = 0; ฉัน bmbc [x [i]] = m - ฉัน - 1;}
​​


ต่อท้ายเป็นโมฆะ (char * x, int เมตรint * suff) {int
ฉซ i;

suff [ม - 1] = m;
กรัม = m - 1;
for (i = m - 2; i> = 0; - i) {
ถ้า (i> กรัม&& suff [im - 1 - ฉ] suff [i] = suff [im - 1 - ฉ]

อื่น {ถ้า (i <กรัม)
กรัม = ฉัน ;
f = i;
ในขณะที่ (g> = 0 && x [ซ] == x [กรัม - 1 - ฉ])
- g;
suff [i] = ฉ - g;}


}

} prebmgs เป็นโมฆะ (char * x, int เมตร bmgs int []) {
int i, j, suff [xsize]

ต่อท้าย (x, m, suff);

for (i = 0; ฉัน <เมตรi)
bmgs [i] = m; เจ
= 0;
for (i = m - 1; i> = 0; - i)
ถ้า (suff [i] == i 1)
for (; เจ <เมตร - 1 - i; ญ)
ถ้า (bmgs [j] == เมตร)
bmgs [j] m = - 1 - i;
for (i = 0; ฉัน <= m - 2; i)
bmgs [ม - 1 - suff [i]] = m - 1 - i;}



โมฆะ BM (char * x, int เมตรถ่าน * y, int n) ​​{
int i, j, bmgs [xsize] , bmbc [asize]

/ * preprocessing * /
prebmgs (x, m, bmgs);
prebmbc (x เมตร, bmbc);

/ * ค้นหา * /
ญ = 0;
ในขณะที่ (ญ <= n - เมตร)
{for (i = m - 1; i> = 0 && x [i] == y [ij] - i);
ถ้า (i <0) {
เอาท์พุท (ญ); เจ
= bmgs [0];}


อื่นเจ = max (bmgs [i] bmbc [y [ij]] - เมตรที่ 1);}



} ตัวอย่าง
preprocessing เฟส
Boyer-Moore bmbc และ bmgs ตาราง
bmbc และ bmgs ตารางที่ใช้โดยบอยเยอร์มัวร์-ขั้นตอนวิธีการขั้นตอนการค้นหา



อ้างอิง aho ระยะ, 1990 ขั้นตอนวิธีการในการหารูปแบบในสายในหนังสือคู่มือของวิทยาศาสตร์คอมพิวเตอร์ทฤษฎีปริมาณขั้นตอนวิธีการและความซับซ้อนเจ ฟอนลีเฟนเอ็ดบทที่ 5, หน้า 255-300, เอลส์, amsterdam
aoe j.-i. , 1994, อัลกอริทึมคอมพิวเตอร์.... รูปแบบที่ตรงกับสายกลยุทธ์ IEEE กดสังคมคอมพิวเตอร์
baase, s, รถตู้ gelder, 1999 ขั้นตอนวิธีคอมพิวเตอร์.? การแนะนำในการออกแบบและการวิเคราะห์รุ่นที่ 3, บทที่ 11, pp -บริษัท สำนักพิมพ์ Addison-Wesley.
Baeza เยตส์-r. วาร์กรัม. ribeiro-เนข., 1999, การจัดทำดัชนีและการค้นหาข้อมูลในการดึงข้อมูลที่ทันสมัย​​, บทที่ 8, หน้า 191-228, Addison-Wesley.
beauquier, D . berstel เจ. Chrétienneพี. 1992 องค์ประกอบศิลป algorithmique, บทที่ 10, หน้า 337-377, masson, ปารีส.
บอยเยอร์อาร์เอสมัวร์ js, 1977, สตริงการค้นหาขั้นตอนวิธีการอย่างรวดเร็ว การสื่อสารของพลอากาศเอก 20:762-772.
โคล, r. 1994 ขอบเขตแน่นอยู่กับความซับซ้อนของรูปแบบบอยเยอร์-มัวร์ที่ตรงกับขั้นตอนวิธีการ siam วารสารบนคอมพิวเตอร์ 23 (5) :1075-1091.
cormen, TH, leiserson, CE, Rivest, RL 1990 รู้เบื้องต้นเกี่ยวกับขั้นตอนวิธีการบทที่ 34, หน้า 853-885 กด mit.
crochemore, m. 1997 ปิดสายอนุกรมการค้นหาสตริงที่แน่นอนในขั้นตอนวิธีการจับคู่รูปแบบเอ็ด Apostolico และซี Galil, บทที่ 1หน้า 1-53 กด Oxford University.
crochemore, m. hancart ค. ปี 1999 รูปแบบการจับคู่ในสตริงในขั้นตอนวิธีการและทฤษฎีของการคำนวณคู่มือ, MJ Atallah ed, บทที่ 11 หน้า 11-1 -. 11-28 กดนิ้วซีอาร์ซี, โบกาเรตัน
crochemore, m, lecroq, t ปี 1996 จับคู่รูปแบบและขั้นตอนวิธีการบีบอัดข้อความในคอมพิวเตอร์ของซีอาร์ซี.... วิทยาศาสตร์และวิศวกรรมคู่มือ, Tucker ed. บทที่ 8 หน้า 162-202,กดนิ้วซีอาร์ซี. โบกาเรตัน.
crochemore, m. rytter w,. ปี 1994, อัลกอริทึมข้อความกด Oxford University.
gonnet, GH, Baeza-เยตส์, รา, 1991 คู่มือขั้นตอนวิธีการและโครงสร้างข้อมูลในภาษาปาสคาลและค, รุ่นที่ 2, บทที่ 7, pp 251-288, Addison-Wesley บริษัท สำนักพิมพ์.
goodrich, เมา, tamassia, r. 1998 โครงสร้างข้อมูลและขั้นตอนวิธีใน java, บทที่ 11 , หน้า 441-467, John Wiley &ลูกหลาน
gusfield, D, 1997, ขั้นตอนวิธีการในสาย, ต้นไม้, และลำดับ. วิทยาการคอมพิวเตอร์และชีววิทยาการคำนวณให้กดมหาวิทยาลัยเคมบริดจ์
hancart ค, 1993.. วิเคราะห์อาณาจักรและรหัส en moyenne ศิลป algorithmes เดอเรอแชร์ d'un เด่น dans ยกเลิกไตเติ้, ph ง วิทยานิพนธ์มหาวิทยาลัยปารีส 7, ฝรั่งเศส
knuth เดอ, มอร์ริส (jr) JH, แพรตต์, VR, 1977 รูปแบบการจับคู่ได้อย่างรวดเร็วในสตริง siam วารสารบนคอมพิวเตอร์ 6 (1).323-350. lecroq
T,. 1992 recherches เด mot, ph ง . วิทยานิพนธ์มหาวิทยาลัยแห่งOrléans, ฝรั่งเศส lecroq
T, 1995 ผลการทดลองในขั้นตอนวิธีการจับคู่สายซอฟแวร์ -... ปฏิบัติ&ประสบการณ์ 25 (7) :727-765
เซดจ์วิก, r, 1988 ขั้นตอนวิธีการบทที่ 19 ได้ pp 277-292, บริษัท สำนักพิมพ์ Addison-Wesley.
เซดจ์วิก, r. ปี 1988 ขั้นตอนวิธีการใน C, บทที่ 19, บริษัท สำนักพิมพ์ Addison-Wesley.
stephen,ga 1994 สตริงการค้นหาขั้นตอนวิธีการทางวิทยาศาสตร์โลก.
วัตสัน, BW, 1995 taxonomies และชุดเครื่องมือของขั้นตอนวิธีการภาษาปกติ ph ง . วิทยานิพนธ์มหาวิทยาลัยเทคโนโลยี Eindhoven, เนเธอร์แลนด์
เวิร์ ธ , n, 1986 ขั้นตอนวิธีการ&โครงสร้างข้อมูลบทที่ 1, pp 17-72, ศิษย์ห้องโถง

เทอร์โบ Boyer-Moore algorithmesmajnot เพื่อ algorithmcontents ไร้เดียงสา
ต่อไป.. เทอร์โบ -BM ขั้นตอนวิธีการขึ้น esmaj ก่อนหน้า:ไม่ให้ขั้นตอนวิธีไร้เดียงสา

อีเมล: {christian.charras, thierry.lecroq} @ laposte.net
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
มัวร์ boyer อัลกอริทึม


คุณลักษณะหลัก
ทำการเปรียบเทียบจากขวาไปซ้าย;
ขั้นตอนการประมวลผลเบื้องต้น O (m ซิก) เวลาและพื้นที่ซับซ้อน;
ค้นระยะ O(mn) เวลาซับซ้อน;
3 คืนเปรียบเทียบอักขระข้อความในกรณีเลวร้ายที่สุดเมื่อค้นหารูปแบบเป็นครั้งคราวไม่ใช่;
O(n / m) สุดประสิทธิภาพการ
อธิบาย
อัลกอริทึม Boyer มัวร์ถือเป็นอัลกอริธึมตรงกับสายที่มีประสิทธิภาพสูงสุดในการใช้งานปกติ มักจะดำเนินการหรืออัลกอริทึมทั้งรุ่นง่ายในตัวแก้ไขข้อความสำหรับการ «ค้นหา» และ «แทน» คำสั่ง
อัลกอริทึมสแกนอักขระแบบจากขวาไปซ้ายต้นด้วยขวาสุด ตรงกัน (หรือการแข่งขันสมบูรณ์ของรูปแบบทั้งหมด) จะใช้ฟังก์ชันสอง precomputed จะเปลี่ยนหน้าต่างไปยังด้านขวา เรียกว่าฟังก์ชันเหล่านี้สองกะกะท้ายดี (เรียกว่ากะตรงกันและกะตัวร้าย (ยังเรียกว่ากะเกิด) .
สมมติให้ตรงกันเกิดขึ้นระหว่างอักขระ x [i] =เป็น y อักขระและรูปแบบ [ฉันเจ] = b ของข้อความระหว่างความพยายามที่ตำแหน่งเจ
x แล้ว [ฉัน 1 ... m-1] = y [ฉันเจ 1 ... เจเอ็ม-1] =และ x [i] neq y [ฉันเจ] ประกอบด้วยกะดีต่อท้ายในตำแหน่ง y ส่วน [ฉันเจ 1 ... เจเอ็ม-1] = x [ฉัน 1 ... m-1] กับเหตุการณ์ของขวาสุดใน x ที่นำหน้า ด้วยอักขระที่แตกต่างจาก x [i] (ดูรูปที่ 13.1)
รูปที่ 13.1
รูป 13.1 กะดีท้าย u ใหม่เกิดขึ้นก่อนหน้า c อักขระแตกต่างจากอ.
ถ้ามีเซ็กเมนต์ดังกล่าวไม่ กะประกอบด้วยในตำแหน่ง v ต่อท้ายยาวที่สุดของ y [ฉันเจ 1 ... เจเอ็ม-1] มีคำเสริมหน้าตรงของ x (ดูรูปที่ 13.2) .
รูป 13.2
13.2 รูป กะดีท้าย เฉพาะส่วนต่อท้ายของคุณใหม่เกิดใน x
กะตัวร้ายประกอบด้วยในการจัดตำแหน่งข้อความอักขระ y [ฉันเจ] กับเหตุการณ์ของขวาสุดใน x [0 ... m-2] (ดูรูปที่ 13.3)
รูปที่ 13.3
13.3 รูป กะตัวร้าย การเกิด x. อัพใน
ถ้า y [ฉันเจ] เกิดในรูปแบบ x ไม่เกิดของ x ใน y สามารถรวม y [ฉันเจ], และซ้ายสุดของหน้าต่างสอดคล้องกับตัวละครทันทีหลัง y [ฉันเจ], ได้แก่ y [ฉันเจ 1] (ดูรูปที่ 13.4) .
รูปที่ 13.4
รูป 13.4 กะตัวร้าย b เกิด x. อัพใน
หมายเหตุว่า กะตัวร้ายสามารถเป็นค่าลบ ดังนั้นการขยับหน้าต่าง อัลกอริทึม Boyer มัวร์ใช้ราคาสูงสุดระหว่างกะท้ายดีและตัวร้ายกะ ขึ้นอย่างเป็นกิจจะลักษณะฟังก์ชันสองกะไว้ดังนี้.
ฟังก์ชันดีท้ายกะจะเก็บไว้ใน bmGs ตารางเมตรขนาด 1.
ให้เรากำหนดเงื่อนไขสองเงื่อนไข:
Cs (i, s): สำหรับแต่ละ k เช่น i ที่ < k < m, s geq k หรือ x [k-s] = x [k] และ
Co (i, s): ถ้า s < ฉันแล้ว x neq [i-s] x [i]
แล้ว สำหรับแบล็คไลท์ 0 ฉัน < bmGs m: [i 1] = min { s > 0 : Cs(i, s) Co และ (i, s) ค้าง}
และเรากำหนด bmGs [0] เป็นความยาวของรอบระยะเวลาของ x BmGs ตารางการคำนวณใช้ suff ตารางที่กำหนดไว้ดังนี้: สำหรับแบล็คไลท์ 1 ฉัน < m, suff [i] =สูงสุด { k: x [i-k 1 ... ฉัน] = x [m k ... m-1] }
ฟังก์ชันตัวร้ายกะจะเก็บไว้ใน bmBc ตารางของซิกขนาด สำหรับ c ในซิก: bmBc [c] = min {ฉัน: แบล็คไลท์ 1 ฉัน < m 1 และ x [m 1 i] = c } c ครั้ง x, m มิฉะนั้นการ
ตาราง bmBc และ bmGs สามารถ precomputed ในเวลา O (m ซิก) ก่อนขั้นตอนการค้นหา และต้องการเนื้อที่เพิ่มเติมใน O (m ซิก) ความซับซ้อนระยะเวลาค้นหาเป็นกำลังสอง ได้มากที่สุด ในการส่ง 3 คืนเปรียบเทียบอักขระข้อความซึ่งจะดำเนินการเมื่อค้นหารูปแบบที่ไม่ใช่ประจำงวด บนอักษรขนาดใหญ่ (ค่อนข้างให้ความยาวของรูปแบบ) อัลกอริทึมได้อย่างรวดเร็วมาก เมื่อค้นหาน. 1b ในพันอัลกอริทึมทำเฉพาะ O(n / m) เปรียบเทียบ ซึ่งเป็นขั้นต่ำแน่นอนสำหรับขั้นตอนวิธีใด ๆ ตรงกับสายอักขระในรูปแบบที่รูปแบบเท่านั้นคือ preprocessed.
C รหัส
preBmBc ยกเลิก (อักขระ * x, int m, int bmBc[]) {
int i;

สำหรับ (i = 0; i < ASIZE i)
bmBc [i] = m;
สำหรับ (ฉัน = 0 ฉัน < m - 1 ค่ะ
bmBc [x [i]] = m - i - 1;
}


ยกเลิกส่วนต่อท้าย (อักขระ * x, int m int * suff) {
int f, g ฉัน;

suff [m - 1] = m;
g = m - 1;
สำหรับ (ฉัน = m - 2 > = 0; - i) {
ถ้า (ฉัน > g && suff [ฉัน f m - 1 -] < ฉัน - g)
suff [i] = suff [ฉัน f m - 1 -];
อื่น {
ถ้า (ฉัน < g)
g =ฉัน;
f =ฉัน;
ขณะ (g > = 0 && x [g] == x [g m - 1 - f])
- g;
suff [i] = f - g;
}
}
}

โมฆะ preBmGs (อักขระ * x, int m, int bmGs[]) {
int i, j, suff [XSIZE];

ส่วนต่อท้าย (x, m, suff);

สำหรับ (ฉัน = 0 ฉัน < m i)
bmGs [i] = m;
j = 0;
สำหรับ (ฉัน = m - 1 > = 0; - i)
ถ้า (suff [i] ==ฉัน 1)
สำหรับ (; เจ < m - 1 - ฉัน เจ)
ถ้า (bmGs [j] == m)
bmGs [j] = m - 1 - ฉัน;
สำหรับ (ฉัน = 0 ฉัน < = m - 2 ค่ะ
bmGs [m - 1 - suff [i]] = m - 1 - ฉัน;
}


โมฆะ BM (อักขระ * x, int m อักขระ * y, int n) {
int i, j, bmGs [XSIZE], bmBc [ASIZE];

/ * Preprocessing * /
preBmGs (x, m, bmGs);
preBmBc (x, m, bmBc);

/ * ค้น * /
j = 0;
ขณะ (เจ < = n - m) {
สำหรับ (ฉัน = m - 1 > =&& 0 x [i] == y [ฉันเจ]; - i);
ถ้า (ฉัน < 0) {
OUTPUT(j);
เจ = bmGs [0];
}
อื่น
เจ = MAX (bmGs [i], bmBc [y [ฉันเจ]] - m 1 ฉัน);
}
}

อย่าง
Preprocessing ระยะ
Boyer มัวร์ bmBc และ bmGs ตาราง
ตาราง bmBc และ bmGs ที่ใช้อัลกอริทึม Boyer มัวร์
ค้นระยะ

อ้างอิง
AHO, A.V., 1990กระบวนหารูปในสายการ ในคู่มือของทฤษฎีคอมพิวเตอร์วิทยาศาสตร์ ระดับเสียง A อัลกอริทึม และความซับซ้อน J. แวน Leeuwen อุตสาหกรรมมหาบัณฑิต บทที่ 5, pp 255-300, Elsevier อัมสเตอร์ดัม
AOE, J. I., 1994 คอมพิวเตอร์อัลกอริทึม: สตริงที่รูปแบบตรงกับกลยุทธ์ IEEE คอมพิวเตอร์สังคมกด
BAASE, S. แวน GELDER, A., 1999 อัลกอริทึมคอมพิวเตอร์: แนะนำการออกแบบและวิเคราะห์ รุ่น 3 บทที่ 11, pp. ??-??, แอดดิสันเวสลีย์ประกาศบริษัท.
R. BAEZA YATES กรัม NAVARRO, RIBEIRO NETO บี 1999 ทำดัชนีและการค้น ใน pp เรียกข้อมูลทันสมัย บทที่ 8, 191-228 แอดดิสัน-เวสลีย์
BEAUQUIER, D., BERSTEL, J., CHRÉTIENNE, 1992 P. Éléments d'algorithmique บทที่ 10, pp 337-377, Masson ปารีส
BOYER อาร์เอส เจเอสมัวร์ 1977 อัลกอริทึมการค้นหาสตริงที่รวดเร็ว การสื่อสารของพลอากาศ 20:762-772.
โคล R., 1994 ตรงกับอัลกอริทึม สมุดรายวันสยามบนคอมพิวเตอร์ 23 (5) รูปแบบขอบเขตแน่นบนความซับซ้อนของ Boyer-มัวร์: 1075-1091.
CORMEN, T.H., LEISERSON, C.E., RIVEST, R.L., 1990 แนะนำอัลกอริทึม บทที่ 34, pp 853-885, MIT กด.
CROCHEMORE, M., 1997 ออฟไลน์ประจำแน่นอนสายค้นหา ในกระบวนการจับคู่รูป อุตสาหกรรมมหาบัณฑิต A. Apostolico และ z. Galil บทที่ 1 pp 1-53 ข่าวมหาวิทยาลัยออกซฟอร์ด.
CROCHEMORE, M., HANCART, C., 1999 รูปแบบการจับคู่ในสาย อัลกอริทึมและทฤษฎีคำนวณของคู่มือ pp Atallah ของมจ.อุตสาหกรรมมหาบัณฑิต บทที่ 11, 11-1 - 11-28, CRC กด Inc. โบคาเรตัน ชั้น
CROCHEMORE, M., LECROQ ต. 1996 รูปแบบจับคู่และข้อความรวมกระบวน ใน pp CRC วิทยาศาสตร์คอมพิวเตอร์และวิศวกรรมคู่มือ A. ทักเกอร์อุตสาหกรรมมหาบัณฑิต บทที่ 8, 162-202, อาคาร CRC กด Inc. โบคาเรตัน
CROCHEMORE, M., RYTTER ปริมาณ 1994 ข้อความกระบวน ข่าวมหาวิทยาลัยออกซฟอร์ด.
GONNET, G.H., BAEZA YATES, R.A., 1991 คู่มือของอัลกอริทึมและโครงสร้างข้อมูลใน C รุ่น 2 บทที่ 7 และปาสกาลนำ 251-288 บริษัทประกาศแอดดิสันเวสลีย์
กู้ดริช M.T., TAMASSIA, R., 1998 ข้อมูลโครงสร้างและอัลกอริทึมใน JAVA บทที่ 11, pp 441-467 จอห์น Wiley &บุตร
GUSFIELD, D., 1997 อัลกอริทึมในสาย ต้นไม้ และลำดับ: วิทยาการคอมพิวเตอร์และคอมพิวเตอร์ชีววิทยา ข่าวมหาวิทยาลัยแคมบริดจ์
HANCART, C., 1993 วิเคราะห์ exacte ร้อยเอ็ดน้ำ moyenne d'algorithmes de recherche d'un แปลน dans un texte, Ph. D. วิทยานิพนธ์ มหาวิทยาลัยปารีส 7 ฝรั่งเศส
KNUTH, D.E., J.H. มอร์ริส (เจอาร์) คิด V.R., 1977 จับคู่รูปแบบรวดเร็วใน strings สมุดรายวันสยามบนคอมพิวเตอร์ 6(1):323-350
LECROQ ต. 1992 มด de Recherches วิทยานิพนธ์ D. Ph. มหาวิทยาลัยออร์เลอ็อง ฝรั่งเศส.
LECROQ ต. 1995, Experimental ผลลัพธ์ในสตริงที่ตรงกันกระบวน ซอฟต์แวร์ - ฝึก&ประสบการณ์ 25 (7): 727-765.
SEDGEWICK, R., 1988 อัลกอริทึม บทที่ 19 นำ 277-292 เวสลีย์แอดดิสันประกาศบริษัท
SEDGEWICK, R., 1988 อัลกอริทึมใน C บทที่ 19 เวสลีย์แอดดิสันประกาศบริษัท
สตีเฟน G.A., 1994 สตริงที่ค้นกระบวน โลกวิทยาศาสตร์การ
WATSON, B.W., 1995 ระบบภาษีและข่าวของอัลกอริทึมภาษาปกติ วิทยา นิพนธ์ D. Ph. มหาวิทยาลัย เทคโนโลยีไอน์โฮเฟน ประเทศเนเธอร์แลนด์
WIRTH ตอนเหนือ 1986 อัลกอริทึม&โครงสร้างข้อมูล บทที่ 1 นำ 17-72, Prentice-ฮอลล์

algorithmESMAJNot Turbo Boyer มัวร์เพื่อ Naive algorithmContents
ถัดไป: อัลกอริทึมเทอร์โบ BM ค่า: ก่อนหน้า ESMAJ: ขั้นตอนวิธี Naive จึงไม่

อีเม: {Christian.Charras, Thierry.Lecroq } @laposte.net
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
อัลกอริธึม boyer-moore


หลักมีความโดดเด่นด้วย
ซึ่งจะช่วยทำให้การเปรียบเทียบจากขวาไปซ้าย;
preprocessing ขั้นตอนใน O (ม. Six Sigma )เวลาและพื้นที่ความซับซ้อน;
การค้นหาขั้นตอนใน O (นาที)ในความซับซ้อน;
3 n ข้อความลักษณะการเปรียบเทียบในกรณีที่เลวร้ายที่สุดในการค้นหาที่ไม่ใช่เป็นระยะๆรูปแบบ;
o ( N / m ) ประสิทธิภาพ .

คำอธิบายอัลกอริธึม boyer-moore ที่ได้รับการพิจารณาให้เป็นส่วนมากอัลกอริธึมสตริงที่ตรงกันอย่างมี ประสิทธิภาพ ในแอปพลิเคชันตามปกติ เวอร์ชันที่ง่ายของมันหรือทั้งหมดอัลกอริธึมมักมีใช้ในข้อความบรรณาธิการสำหรับ"การค้นหา"และ"แทน"คำสั่ง.
ที่อัลกอริธึมการสแกนที่ตัวอักษรของรูปแบบจากขวาไปซ้ายเริ่มด้วยเคเบิ้ล Main power หนึ่ง.ในกรณีที่ไม่ตรงกัน(หรือตรงกับสมบรูณ์แบบที่มีรูปแบบทั้งหมด)ที่ใช้ฟังก์ชั่นการทำงานเป็นสอง precomputed เพื่อเปลี่ยนหน้าต่างที่อยู่ทางด้านขวา ฟังก์ชันการทำงานทั้งสองนี้มีการเรียกว่าการเปลี่ยนแปลงที่ดี - ส่วนต่อท้าย(นอกจากนั้นยังเปลี่ยนที่ตรงกันเรียกว่าและการเปลี่ยนแปลงไม่ดี - ตัวอักษร(เรียกอีกอย่างหนึ่งว่าการเปลี่ยนแปลงที่เกิด)..
จะต้องเป็นผู้รับผิดชอบที่ไม่ตรงกันว่าจะเกิดขึ้นระหว่างที่ตัวอักษร X [ i ]= A ของรูปแบบและลักษณะ Y [ผม J ]= b ของข้อความในระหว่างที่มีความพยายามที่ตำแหน่ง J .
แล้ว, x [ i 1 ...ม. - 1 ]= Y [ผม J 1 ... J M - 1 ]= U และ X [ i ] neq Y [ผม J ] ที่ดี - ต่อท้ายด้วยการเปลี่ยนแปลงประกอบไปด้วยในการปรับเปลี่ยนส่วน Y [ผม J 1 ... J M - 1 ]= x [ i 1 ...ม. - 1 ]ด้วยเคเบิ้ล Main power เกิดใน X ที่มีคริปท์นำหน้าด้วยตัวอักษรแตกต่างจาก x [ i ](ดูรูปที่ 13.1 )

รูปรูปที่ 13.1 13.1 . ที่ดี - ต่อท้ายด้วยการเปลี่ยนแปลง, U อีกครั้ง - เกิดขึ้นคริปท์นำหน้าด้วยตัวอักษร C แตกต่างจากที่.
หากมีไม่มีเช่นตลาด,การเปลี่ยนแปลงประกอบไปด้วยให้มากที่สุดส่วนต่อท้าย v ของ Y [ผม J 1 ... J M - 1 ]ด้วยที่ตรงกับหน้าของ X (ดูรูปที่ 13.2 )..
รูปที่ 13.2
รูปที่ 13.2 . การเปลี่ยนแปลงที่ดี - ส่วนต่อท้ายเท่านั้นที่ต่อท้ายอีกครั้งของ U - เกิดขึ้นใน X .
การเปลี่ยนแปลงไม่ดี - ชุดอักขระที่ประกอบไปด้วยในการจัดแนวข้อความ Y [ J i ]ด้วยเหตุการณ์ของเคเบิ้ล Main power ใน X [ 0 ...ม. - 2 ] (ดูรูปที่ 13.3 )
รูปที่ 13.3
รูปที่ 13.3 . การเปลี่ยนแปลงไม่ดี - อักขระที่เกิดขึ้นใน X .
หาก Y [ J i ]ไม่ได้เกิดขึ้นในรูปแบบที่ x ไม่มีการเกิดขึ้นของ X ใน Y สามารถรวมถึง y [ J ผม]และปลายทางด้านซ้ายของหน้าต่างที่อยู่ในแนวเดียวกับตัวอักษรในทันทีหลังจาก Y [ J i ]คือ Y [ผม J 1 ](ดูรูปที่ 13.4 )..
รูปที่ 13.4
รูปที่ 13.4 . B การเปลี่ยนแปลงไม่ดี - อักขระที่ไม่ได้เกิดขึ้นใน X .
บันทึกไว้ด้วยว่าการย้ายไม่ดี - ลักษณะอันโดดเด่นที่สามารถลบดังนั้นสำหรับการเปลี่ยนหน้าต่างที่ใช้อัลกอริธึม boyer-moore สูงสุดได้ระหว่างการเปลี่ยนแปลงที่ดี - ส่วนต่อท้าย SHIFT และไม่ถูกต้องอักขระ ฟังก์ชันเพิ่มเติมอย่างเป็นทางการสองการย้ายที่ถูกกำหนดไว้ดังนี้.
ที่ดี - ต่อท้ายฟังก์ชันการย้ายจะถูกจัดเก็บอยู่ในโต๊ะ bmgs ของขนาดม. 1 .
ปล่อยให้เรากำหนดเงื่อนไขสอง:
CS (ผม, s ):สำหรับแต่ละ K ที่ผม< K ม., s geq K หรือ X [ K - S ]= x [ K ]และ
ตามมาตรฐานร่วมกัน( I , s ):หาก< I จากนั้น x [ i - S ] neq x [ i ]
แล้วสำหรับ 0 leq I <ม.: bmgs [ i 1 ]=นาที{ s > 0 : CS (ผม, s )และให้ความร่วมมือ(ผม, S )ค้างไว้, time , long }
และเรากำหนด bmgs [ 0 ]เป็นที่ความยาวของช่วงของ x .ที่มารวมกันที่โต๊ะของ bmgs ใช้ที่โต๊ะออนซ์กำหนดไว้ดังนี้: 1 leq I < m ,ออนซ์[ i ]=สูงสุด{ K : X [ i - K 1 ...ฉัน]= x [ม. - K ...ม. - 1 ]}
ที่ไม่ดี - อักขระฟังก์ชันการย้ายจะถูกจัดเก็บอยู่ในโต๊ะ bmbc ขนาดซิกมา. สำหรับ C ใน Six Sigma bmbc [ c ]=นาที{ผม 1 ม. I < leq - 1 และ X [ม. - 1 - i ]= C }ถ้าการเชื่อมต่อระหว่าง C จะเกิดขึ้นใน X ม.หรือมิเช่นนั้นแล้ว.
โต๊ะ bmbc และ bmgs สามารถ precomputed ในเวลา O (ม. Six Sigma )ก่อนขั้นตอนการค้นหาที่พิเศษและต้องใช้พื้นที่ว่างใน O (ม. Six Sigma ) ความซับซ้อนในขั้นตอนการค้นหาที่มีในพีชคณิตที่มีกำลังสองแต่ที่มากที่สุด 3 การเปรียบเทียบตัวอักษรข้อความ n ได้เมื่อทำการค้นหาสำหรับรูปแบบที่ไม่ใช่เป็นระยะๆ บนตัวอักษรขนาดใหญ่(มีให้มีความยาวพอเหมาะที่ทำให้มีรูปแบบที่)อัลกอริธึมที่ได้อย่างรวดเร็วเป็นอย่างมากเมื่อทำการค้นหาสำหรับ AM - 1 b ใน bn ,ที่ทำให้อัลกอริธึมเท่านั้น O ( N /ม.)การเปรียบเทียบ,ซึ่งเป็นขั้นต่ำไม่ว่าในกรณีใดๆสำหรับสตริง - อัลกอริธึมที่ตรงกันในรุ่นที่รูปแบบเท่านั้นคือ preprocessed .

ซึ่งจะช่วยให้รหัสเป็นโมฆะ prebmbc (ปัดกวาดบ้าน* X , INT m , INT bmbc []){
Int ผม;

สำหรับ( I = 0 ;ฉัน< asize ; I )
bmbc [ i ]= m ;
สำหรับ( I = 0 ;ฉัน<ม. - 1 ; I )
bmbc [ x [ i ]]= m - I - 1 ;
}


เป็นโมฆะคำลงท้ายดังกล่าว(ปัดกวาดบ้าน* X , INT m ,INT ‐*ออนซ์){
Int F , g , i ;

ออนซ์[ม. - 1 ]= m ;
G =ม. - 1 ;
สำหรับ( I = m - 2 ;ฉัน>= 0 ; - - ฉัน){
หาก( I > G &&ออนซ์[ i m - 1 - F ]< I - G )
ออนซ์[ i ]=ออนซ์[ i M - 1 - F ];

อื่น{หาก( I < G )
G =ฉัน;
F =ฉัน;
( G >= 0 && x [ G ]== x [ G ม. - 1 - F ]:)
- - G ;
ออนซ์[ i ]= F - G ;

}}}


เป็นโมฆะ prebmgs (ปัดกวาดบ้าน* X , INT M , INT bmgs []){
Int I , J ,ออนซ์[ xsize ];

คำลงท้ายดังกล่าว( x , M ,ออนซ์);

( I = 0 ;ฉัน< ม.;I )
bmgs [ i ]= m ;
j = 0 ;
สำหรับ( I = m - 1 ;ฉัน>= 0 ; - - I )
หาก(ออนซ์[ i ]== I 1 )
สำหรับ(; J <ม. - 1 - I ; J )
หาก( bmgs [ J ]== m )
bmgs [ J ]= m - 1 - I ;
สำหรับ( I = 0 ;<= m - 2 ; I )
bmgs [ม. - 1 - ออนซ์[ i ]]= m - 1 - I ;
}


เป็นโมฆะเบอร์มิวดา(ปัดกวาดบ้าน* X , INT M ,ปัดกวาดบ้าน* Y , INT N ){
Int I , J , bmgs [ xsize ], bmbc [ asize ];

/* preprocessing */
prebmgs ( x , M , bmgs );
prebmbc ( x , M , bmbc );

/*การค้นหา*/
j = 0 ;
ในขณะที่( J <= N - m ){
สำหรับ( I = m - 1 ; I >= 0 && x [ i ]== Y [ผม J ]; - - I );
หาก( I < 0 ){
เอาต์พุต( J );
j = bmgs [ 0 ];

อื่น}
j =สูงสุด( MAX )( bmgs [ i ], bmbc [ y [ผม J ]] - ม. 1 i );

}}

ออกตัวอย่างเช่น
preprocessing phase
boyer-moore bmbc และ bmgs โต๊ะ
bmbc bmgs และโต๊ะโดยใช้อัลกอริธึม boyer-moore
การค้นหา ระยะ

การอ้างอิง
aho , a . V , 1990 ,อัลกอริธึมในการค้นหาในรูปแบบสตริง.ในคู่มือของทางทฤษฎีวิทยาศาสตร์คอมพิวเตอร์,ระดับเสียง,อัลกอริธึมและความซับซ้อน, J .รถตู้ว่า‘ Oranje Leeuwen เอ๊ด,บทที่ 5 , pp 255-300 , elsevier , Amsterdam .
aoe , J . - I , 1994 ,คอมพิวเตอร์อัลกอริธึม:สตริงรูปแบบที่ตรงกันกลยุทธ์, IEEE คอมพิวเตอร์สังคมกด.
baase , S .,รถตู้ปราศรัย, A ., 1999 ,คอมพิวเตอร์อัลกอริธึม:การแนะนำตัวการออกแบบและการวิเคราะห์, 3 Edition ,บทที่ 11 , pp ) - ),การเผยแพร่ addison-wesley บริษัท.
Baeza - yates . R ., navarro . G .,ริเบย์โร - do Canto มีชื่อเสียงในด้านสถานบันเทิง B ., 1999 ,การทำดัชนีและการค้นหา,ในที่ทันสมัย,การเรียกข้อมูลจากข้อมูล,บทที่ 8 , pp 191-228 , addison-wesley .
beauquier , D ., berstel , J ., chrétienne , p . p ., 1992 , éléments d ' algorithmique ,บทที่ 10 , pp 337-377 , masson , Paris .
boyer . R . S .,มัวร์ j.s. , 1977 ,ได้อย่างรวดเร็วสตริงการค้นหาอัลกอริธึม. การสื่อสารของพล.อ.อ.ได้. 20762-772 ..
โคล. R . 1994 นอกสนามกันแน่นบนความซับซ้อนของอัลกอริธึมที่ตรงกับรูปแบบ boyer-moore ที่สยามวารสารในการใช้งานคอมพิวเตอร์ 23 ( 5 ): 1075-1091 ..
cormen T . H . C . E . leiserson rivest . R . L . 1990 . อัลกอริธึมการแนะนำตัวบท 34 PP 853-885 , MIT ,กด.
crochemore m . 1997 . สตริงที่แน่นอน Serial ปิด - line การค้นหาในรูปแบบการจับคู่อัลกอริธึม A apostolico ล่ะและ Z . galil บทที่ 1PP 1-53 Oxford University Press .
crochemore . M . C . 1999 hancart รูปแบบที่ตรงกันในสตริงในอัลกอริธึมทฤษฎีและการคำนวณคู่มือ m . J . atallah ล่ะบทที่ 11 : PP 11-1 11-28 CRC ให้กด, Inc . Boca Raton , Fl .
crochemore lecroq m . T . 1996 และข้อความที่ตรงกับรูปแบบอัลกอริธึมการบีบอัดใน CRC คู่มือคอมพิวเตอร์ด้านวิศวกรรมและวิทยาศาสตร์ Tucker A .ล่ะบทที่ 8 : PP 162-202ประกอบด้วย CRC กด, Inc . Boca Raton , Fl .
crochemore m . rytter W 1994 อัลกอริธึมข้อความ Oxford University Press .
gonnet . G . H . Baeza - yates ปืนใหญ่ 1991 . หนังสือคู่มือของอัลกอริธึมและข้อมูลโครงสร้างในปาสคาลและ C 2 บทที่ 7 , pp 251-288 addison-wesley เผยแพร่บริษัท.
, Goodrich Landing Gear เวลากรีนิช tamassia . R . 1998 ข้อมูลโครงสร้างและอัลกอริธึมในเกาะชวาบทที่ 11 : PP 441-467 จอห์น wiley &คน.
gusfield D .ปี 1997 อัลกอริธึมที่สตริงต้นไม้และซีเควนซ์ของชีววิทยาวิทยาศาสตร์คอมพิวเตอร์และประมวลผลมหาวิทยาลัย Cambridge กด.
hancart C . 1993 . วิเคราะห์ exacte เอ็ด EN Moyenne d ' algorithmes de recherche d 'ลักษณะของความโดดเด่นของสหประชาชาติ dans UN texte ดร. D .นิพนธ์มหาวิทยาลัย Paris 7 ฝรั่งเศส.
knuth D . E .เทศบาลเมืองแอตแลนตา(สถานี JR )ก.ศป. H .แพร V . R . 1977 ที่ตรงกับรูปแบบได้อย่างรวดเร็วในสตริงสยามวารสารสำหรับการใช้งานคอมพิวเตอร์ 6 ( 1 )323-350 ..
lecroq T 1992 ร่วม recherches de ดร. D .นิพนธ์, University of Orlé ,ฝรั่งเศส.
lecroq , T , 1995 ,ผลการทดลองในสตริงที่ตรงกับอัลกอริธึม,ซอฟต์แวร์การฝึกการ&ประสบการณ์ 25 ( 7 ): 727-765 ..
sedgewick ,. R ., 1988 ,อัลกอริธึม,บท 19 , pp 277-292 , addison-wesley เผยแพร่บริษัท.
sedgewick , R , 1988 ,อัลกอริธึมใน C ,บท 19 , addison-wesley การพิมพ์บริษัท.
สตีเฟน,อัลกอริธึม g.a. 1994 สตริงการค้นหาโลกวิทยาศาสตร์.
วัตสัน B . W . 1995 ดร. taxonomies และชุดเครื่องมือต่างๆอย่างสม่ำเสมอ ภาษา อัลกอริธึม D .นิพนธ์ Eindhoven , University of Technology ,เนเธอร์แลนด์,.
wirth N . 1986 อัลกอริธึม&ข้อมูลโครงสร้างบทที่ 1 , pp 17-72 prentice-hall . algorithmesmajnot

Turbo boyer-moore ดังนั้นไร้เดียงสา algorithmcontents
ถัดไป turbo - เบอร์มิวดาอัลกอริธึมขึ้น esmaj ก่อนหน้าไม่ได้ไร้เดียงสาอัลกอริ ธึม

อี - เมล์{คริสเตียน. charras ชาว. lecroq }@ laposte.net
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: