สารบัญ:

คุณจะใช้แผนผังการค้นหาแบบไบนารีใน Java ได้อย่างไร
คุณจะใช้แผนผังการค้นหาแบบไบนารีใน Java ได้อย่างไร

วีดีโอ: คุณจะใช้แผนผังการค้นหาแบบไบนารีใน Java ได้อย่างไร

วีดีโอ: คุณจะใช้แผนผังการค้นหาแบบไบนารีใน Java ได้อย่างไร
วีดีโอ: โครงสร้างต้นไม้ Tree: Binary Tree การท่องต้นไม้แบบ Preorder Inorder และ Postorder Binary Search Tree 2024, พฤศจิกายน
Anonim

การนำ Binary Search Tree (BST) ไปใช้ใน Java

  1. ทรีย่อยด้านซ้ายของโหนดมีเฉพาะโหนดที่มีคีย์น้อยกว่าคีย์ของโหนด
  2. แผนผังย่อยด้านขวาของโหนดมีเฉพาะโหนดที่มีคีย์ที่มากกว่าคีย์ของโหนด
  3. ทรีย่อยด้านซ้ายและขวาแต่ละอันต้องเป็น a. ด้วย ต้นไม้ค้นหาไบนารี .
  4. ต้องไม่มีโหนดที่ซ้ำกัน

คำถามก็คือ การค้นหาแบบไบนารีมีการใช้งานใน Java อย่างไร

มาดูตัวอย่างการค้นหาไบนารีในจาวาที่เราจะค้นหาองค์ประกอบจากอาร์เรย์โดยใช้การเรียกซ้ำ

  1. คลาส BinarySearchExample1{
  2. การค้นหาไบนารี int สาธารณะแบบคงที่ (int arr , int ก่อน, int สุดท้าย, คีย์ int){
  3. ถ้า (สุดท้าย>=ก่อน){
  4. int mid = first + (สุดท้าย - ก่อน)/2;
  5. ถ้า (arr [กลาง] == คีย์){
  6. กลับกลาง;
  7. }

ประการที่สอง เราจะใช้แผนผังการค้นหาแบบไบนารีที่ไหน แผนผังการค้นหาไบนารี - ใช้แล้ว ในหลาย ๆ ค้นหา แอปพลิเคชันที่ข้อมูลเข้า/ออกอย่างต่อเนื่อง เช่น แผนที่และตั้งค่าออบเจ็กต์ในไลบรารีของหลายภาษา ไบนารี่ ฉากกั้นห้อง - ใช้แล้ว ในวิดีโอเกม 3D เกือบทุกเกมเพื่อกำหนดว่าต้องแสดงวัตถุใด

ต้นไม้ไบนารีเกิดขึ้นได้อย่างไร?

การสร้าง Binary Tree โดยใช้ Recursion

  1. อ่านข้อมูลใน x
  2. จัดสรรหน่วยความจำสำหรับโหนดใหม่และเก็บที่อยู่ในตัวชี้ p
  3. เก็บข้อมูล x ในโหนด p
  4. สร้างทรีย่อยด้านซ้ายซ้ำๆ ของ p และทำให้เป็นลูกด้านซ้ายของ p
  5. สร้างทรีย่อยที่ถูกต้องซ้ำ ๆ ของ p และทำให้เป็นลูกที่ถูกต้องของ p

ความซับซ้อนของการค้นหาแบบไบนารีคืออะไร?

ค้นหาไบนารี ทำงานในเวลาลอการิทึมที่เลวร้ายที่สุด โดยทำการเปรียบเทียบ O(log n) โดยที่ n คือจำนวนองค์ประกอบในอาร์เรย์ O คือสัญกรณ์ Big O และ log คือลอการิทึม ค้นหาไบนารี ใช้พื้นที่คงที่ (O(1)) ซึ่งหมายความว่าพื้นที่ที่ใช้โดยอัลกอริทึมจะเหมือนกันสำหรับองค์ประกอบจำนวนเท่าใดก็ได้ในอาร์เรย์

แนะนำ: