/** * อัลกอริทึมสตริงง่าย ๆ ค้นหา sub -string ผ่านสองเลเยอร์ของรอบ * แนวคิดของอัลกอริทึมคือ: เปรียบเทียบจากสตริงรูปแบบของอักขระ POS ของสตริงหลัก S เมื่อการจับคู่ไม่สำเร็จอักขระ POS+1 ของสตริงหลัก S ถูกเปรียบเทียบกับสตริงรูปแบบ * หากความยาวของสตริงหลัก S คือ N และความยาวของสตริงโหมดคือ M ดังนั้นความซับซ้อนของเวลาของเฟรมเดรัจฉานคือ O (M* N) * กรณีที่เลวร้ายที่สุดจะปรากฏใน sub -string ของสตริงโหมดมักจะปรากฏขึ้นบ่อยครั้งในสตริงหลัก S. * ถึงแม้ว่าความซับซ้อนของเวลาคือ O (M * N) เวลาที่ตรงกันคือ O (M+N) โดยทั่วไปและ * ดังนั้นจึงใช้ในปริมาณมาก * ข้อดีของวิธีนี้คือ: อัลกอริทึมนั้นง่ายและชัดเจนซึ่งสะดวกเพื่อให้ได้หน่วยความจำ * ข้อเสียของวิธีนี้คือ: ย้อนหลังย้อนหลังประสิทธิภาพไม่สูงและตัวติดตามเหล่านี้ไม่จำเป็น * ด้านล่างเป็นรหัส Java ของอัลกอริทึม คลาส BRURECE {โมฆะคงที่หลัก (String [] args) {String WaitFormatch = "Abbacbabcdabcbec"; ("ดัชนีที่ตรงกันคือ"+ดัชนี);} / *** @ผู้แต่ง* @param waitformatch สตริงหลัก* @param โหมดรูปแบบสตริง* @return สตริงการจับคู่ตำแหน่งที่ประสบความสำเร็จ* / public int getSubstringex (สตริง wai tformatch, รูปแบบสตริง) { int StringLength = WaitFormatch.length (); ตำแหน่งถัดไปสำหรับ (int j = 0; j <patternlength; j ++) {ถ้า (waitformatch.charat (k)! = pattern.charat (j)) {break; == PatternLength-) {return i;}}}} // การจับคู่ที่ไม่สำเร็จ, return 0 return 0;}}