ตัวอย่างของบทความนี้อธิบาย Java เพื่อให้ได้เกมเขาวงกตการค้นหาคำ แบ่งปันสำหรับทุกคนสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
ในนิตยสารเรามักจะเห็นมินิเกมที่กำลังมองหาคำศัพท์ คอมพิวเตอร์เครื่องนี้สะดวกมากในการประมวลผล แต่คุณภาพของอัลกอริทึมเป็นสิ่งสำคัญเพราะถ้ามันถูกนำไปใช้กับอัลกอริทึมกำลังเดรัจฉานเวลาที่ใช้เป็นไปไม่ได้
นี่คือการตระหนักถึงโครงสร้างข้อมูลและปัญหาที่แก้ปัญหาการตระหนักถึงการตระหนักถึงคำอธิบายภาษา Java
รหัสเต็มมีดังนี้ความคิดเห็นชัดเจนมาก
นำเข้า Java.io.BuffredReader; ** * เขาวงกตการค้นหาคำ * * * */คลาสสาธารณะ Wordsearch {/** * ในตัวสร้างสร้างกระแสอินพุตสองกระแสอินพุตสตรีมของคำและสตรีมอินพุตของตาราง * * */public wordearch () โยน ioexception {Puzzlestrea M = OpenFile ("ป้อน Form File Path:"); } /*** @return จับคู่มีจำนวนคำในการจับคู่ทั้งหมด* ค้นหาจากแปดทิศทางในแต่ละตำแหน่ง* rd เพื่อระบุผลผลิตที่เพิ่มขึ้นเช่น: rd = -1 แสดงว่าบรรทัดบน* ซีดีระบุว่าการเพิ่มขึ้น เช่นในคอลัมน์เช่น: CD = -1 หมายถึงขั้นตอนไปทางซ้าย* SO RD = 1, CD = 0 หมายถึง SOUTH* RD = -1, CD = 0 หมายถึง NORTH,* RD = -1, CD = 1, ระบุภาคตะวันออกเฉียงเหนือ*/ Public Int SolidePuzzle () {int จับคู่ = 0; ) สำหรับ (int cd = -1; cd <= 1; cd ++) ถ้า (rd! = 0 || cd! = 0) ตรงกับ+= solvedirection (r, c, rd, cd); *** ในพิกัดที่ระบุตามการค้นหาทิศทางที่กำหนดส่งคืนจำนวนคำเพื่อจับคู่ *@return จำนวนการจับคู่ */ การแก้ปัญหา int ส่วนตัว (int baserow, int basecol, int rowdelta) {String Charission Ce = " "; int nummatches = 0; int searchResult; charsequence + = theboard [baserow] [basecol]; สำหรับ (int i = baserow + rowdelta, j = basecol + coldlta; i> = 0 && j> = 0 & & & j < clumns; -บอร์ดอันตรายและเมื่อคำนำหน้าการจับคู่คำสุดท้ายส่งคืนดัชนี -1 * * / ถ้า (searchResult == thewords.length); SearchResult] .Startswith (Charsequence) Break; basecol + "คอลัมน์" + i + " + j);} ส่งคืน nummatches;} /*** ก่อนอธิบายอาร์เรย์. binarySearch (วัตถุ [], วัตถุ)* ใช้อัลกอริทึมการค้นหาแบบไบนารีเพื่อค้นหาอาร์เรย์ที่ระบุ วัตถุ. ก่อนการโทรนี้ * จะต้องจัดเรียงตามอาร์เรย์ตามลำดับตามธรรมชาติขององค์ประกอบอาร์เรย์ (ผ่านการเรียงลำดับข้างต้น (วิธีการ [] วัตถุ) * หากไม่มีการเรียงลำดับของอาร์เรย์ผลลัพธ์จะไม่ชัดเจนองค์ประกอบที่ไม่สามารถทำได้ เปรียบเทียบกัน (ตัวอย่างเช่นสตริงและจำนวนเต็ม), *ไม่สามารถเรียงลำดับอาร์เรย์ตามลำดับตามธรรมชาติขององค์ประกอบอาร์เรย์ดังนั้นผลลัพธ์จึงไม่ชัดเจน) *保证找到的是哪一个。 */ คำนำหน้า int แบบคงที่ส่วนตัว (String [] A, String X) {int IDX = arrays.binarySearch (a, x); รับอินพุตสตรีม* / ส่วนตัว bufferedReader openFile (ข้อความสตริง) {สตริง filename = "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" (); ถ้า (ชื่อไฟล์ == null) System.Exit (0); filein == null); Puzzlestream.readline ()) == null) โยน iOexception ใหม่ ("ไม่มีบรรทัดในไฟล์ Puzzle"); = null) {ถ้า (oneline.length () !! stem.err. println ("ปริศนาไม่ได้เป็นรูปสี่เหลี่ยมผืนผ้า, การข้ามแถว"); else puzzlelines.add (หนึ่ง);} แถว = Puzzlelines.size (); theboard = ใหม่ ถ่าน [แถว] [คอลัมน์] ;; () พ่น IOException {list <string> words = new ArrayList <String> () ;; string thisward; 0) {System.err.println ("ไม่ได้เรียงลำดับในคำสั่งของพจนานุกรมครั้งนี้"); Words.size ()]; .OU T.PRINTLN ("ข้อผิดพลาดของ IO:"); [] Thewords;หวังว่าบทความนี้จะเป็นประโยชน์กับการออกแบบโปรแกรม Java ของทุกคน