สารบัญ:
วีดีโอ: คุณจะใช้แผนผังการค้นหาแบบไบนารีใน Java ได้อย่างไร
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
การนำ Binary Search Tree (BST) ไปใช้ใน Java
- ทรีย่อยด้านซ้ายของโหนดมีเฉพาะโหนดที่มีคีย์น้อยกว่าคีย์ของโหนด
- แผนผังย่อยด้านขวาของโหนดมีเฉพาะโหนดที่มีคีย์ที่มากกว่าคีย์ของโหนด
- ทรีย่อยด้านซ้ายและขวาแต่ละอันต้องเป็น a. ด้วย ต้นไม้ค้นหาไบนารี .
- ต้องไม่มีโหนดที่ซ้ำกัน
คำถามก็คือ การค้นหาแบบไบนารีมีการใช้งานใน Java อย่างไร
มาดูตัวอย่างการค้นหาไบนารีในจาวาที่เราจะค้นหาองค์ประกอบจากอาร์เรย์โดยใช้การเรียกซ้ำ
- คลาส BinarySearchExample1{
- การค้นหาไบนารี int สาธารณะแบบคงที่ (int arr , int ก่อน, int สุดท้าย, คีย์ int){
- ถ้า (สุดท้าย>=ก่อน){
- int mid = first + (สุดท้าย - ก่อน)/2;
- ถ้า (arr [กลาง] == คีย์){
- กลับกลาง;
- }
ประการที่สอง เราจะใช้แผนผังการค้นหาแบบไบนารีที่ไหน แผนผังการค้นหาไบนารี - ใช้แล้ว ในหลาย ๆ ค้นหา แอปพลิเคชันที่ข้อมูลเข้า/ออกอย่างต่อเนื่อง เช่น แผนที่และตั้งค่าออบเจ็กต์ในไลบรารีของหลายภาษา ไบนารี่ ฉากกั้นห้อง - ใช้แล้ว ในวิดีโอเกม 3D เกือบทุกเกมเพื่อกำหนดว่าต้องแสดงวัตถุใด
ต้นไม้ไบนารีเกิดขึ้นได้อย่างไร?
การสร้าง Binary Tree โดยใช้ Recursion
- อ่านข้อมูลใน x
- จัดสรรหน่วยความจำสำหรับโหนดใหม่และเก็บที่อยู่ในตัวชี้ p
- เก็บข้อมูล x ในโหนด p
- สร้างทรีย่อยด้านซ้ายซ้ำๆ ของ p และทำให้เป็นลูกด้านซ้ายของ p
- สร้างทรีย่อยที่ถูกต้องซ้ำ ๆ ของ p และทำให้เป็นลูกที่ถูกต้องของ p
ความซับซ้อนของการค้นหาแบบไบนารีคืออะไร?
ค้นหาไบนารี ทำงานในเวลาลอการิทึมที่เลวร้ายที่สุด โดยทำการเปรียบเทียบ O(log n) โดยที่ n คือจำนวนองค์ประกอบในอาร์เรย์ O คือสัญกรณ์ Big O และ log คือลอการิทึม ค้นหาไบนารี ใช้พื้นที่คงที่ (O(1)) ซึ่งหมายความว่าพื้นที่ที่ใช้โดยอัลกอริทึมจะเหมือนกันสำหรับองค์ประกอบจำนวนเท่าใดก็ได้ในอาร์เรย์
แนะนำ:
คุณจะทำ forEach loop ใน Java ได้อย่างไร?
For-each loop ใน Java เริ่มต้นด้วยคีย์เวิร์ด for like for-loop ปกติ แทนที่จะประกาศและเริ่มต้นตัวแปรนับลูป คุณประกาศตัวแปรที่เป็นประเภทเดียวกับประเภทพื้นฐานของอาร์เรย์ ตามด้วยโคลอน ซึ่งตามด้วยชื่ออาร์เรย์
คุณจะค้นหาชุดย่อยของสตริงใน Java ได้อย่างไร
เซตย่อยของสตริงคืออักขระหรือกลุ่มของอักขระที่มีอยู่ภายในสตริง เซตย่อยที่เป็นไปได้ทั้งหมดสำหรับสตริงจะเป็น n(n+1)/2 โปรแกรม: คลาสสาธารณะ AllSubsets {public static void main(String[] args) {String str = 'FUN'; int len = str อุณหภูมิภายใน = 0;
ฉันจะทำเงินออนไลน์ด้วยการเขียนโปรแกรม Java ได้อย่างไร
มาสำรวจความเป็นไปได้ต่างๆ ด้านล่างกัน ถ่ายทอดการพัฒนา Java และกลายเป็นนักแปลอิสระ คุณได้ทำโปรเจ็กต์ Java มากมายแล้ว สร้างอินเทอร์เน็ตของสิ่งต่างๆ ลงทุนเวลาของคุณในการสร้างหุ่นยนต์ เขียนเว็บแอป รักษาบล็อก Java มาเป็นนักวิทยาศาสตร์ พัฒนาเกมจาวา มาเป็นนักพัฒนา Java
คุณทำสีม่วงใน Java ได้อย่างไร?
พารามิเตอร์สีเขียวและสีน้ำเงินจะควบคุมปริมาณแสงสีเขียวและสีน้ำเงินตามลำดับตั้งแต่ 0 ถึง 255 เมื่อรวมสามสีในปริมาณที่แตกต่างกัน คุณสามารถสร้างสีอื่นๆ ได้ ตัวอย่างเช่น แสงสีแดงและแสงสีน้ำเงินจะรวมกันเป็นสีม่วง
คุณสร้างรูปทรงเพชรใน Java ได้อย่างไร?
รูปร่างเพชรถูกสร้างขึ้นโดยการพิมพ์สามเหลี่ยมแล้วพิมพ์สามเหลี่ยมคว่ำ ทำได้โดยใช้ nested for loops