Binary Search ใน Java คืออะไร? วิธีการใช้งาน?

Binary Search ใน Java คืออัลกอริทึมการค้นหาที่ค้นหาตำแหน่งของค่าเป้าหมายภายในอาร์เรย์ที่เรียงลำดับ ในบทความนี้ฉันจะบอกวิธีการใช้งานด้วยความช่วยเหลือของตัวอย่าง

อัลกอริทึมการค้นหาและการเรียงลำดับคือ อัลกอริทึมยอดนิยม ในภาษาโปรแกรมใด ๆ สิ่งเหล่านี้เป็นพื้นฐานในการทำความเข้าใจพื้นฐานของการเขียนโปรแกรม หนึ่งในอัลกอริทึมการค้นหายอดนิยมคือการค้นหาแบบไบนารีใน . ในบทความนี้ฉันจะบอกคุณทั้งหมดเกี่ยวกับการใช้งาน

หัวข้อด้านล่างนี้กล่าวถึงในบทความนี้:





มาเริ่มกันเลย!

Binary Search คืออะไร?

ค้นหาไบนารีใน คือ อัลกอริทึมการค้นหาที่ค้นหาตำแหน่งของค่าเป้าหมายภายในการจัดเรียง อาร์เรย์ . การค้นหาแบบไบนารี เปรียบเทียบค่าเป้าหมายกับองค์ประกอบกลางของอาร์เรย์ มันใช้งานได้กับชุดองค์ประกอบที่จัดเรียงเท่านั้น ในการใช้การค้นหาแบบไบนารีในคอลเล็กชันไฟล์ ต้องเรียงลำดับก่อน



โปรแกรมค้นหาไบนารีใน Java - การค้นหาแบบไบนารีใน Java - Edurekaเมื่อ ใช้เพื่อดำเนินการกับชุดที่เรียงลำดับจำนวนการวนซ้ำสามารถลดลงได้เสมอตามค่าที่กำลังค้นหา คุณสามารถดูในภาพรวมด้านบนของการค้นหาไฟล์ องค์ประกอบกลาง . การเปรียบเทียบการค้นหาแบบไบนารีคือการใช้ข้อมูลที่เรียงลำดับอาร์เรย์และลดความซับซ้อนของเวลาลง O (บันทึก n) .

การใช้งาน Binary Search Algorithm

มาดูโค้ดหลอกด้านล่างนี้เพื่อทำความเข้าใจในทางที่ดีขึ้น

ขั้นตอน binary_search A & larr อาร์เรย์ที่เรียงลำดับ n & ขนาดของอาร์เรย์ x & larr ที่ต้องการค้นหา Set low = 1 Set high = n ในขณะที่ x ไม่พบถ้า high

คำอธิบาย:



ขั้นตอนที่ 1: ขั้นแรกให้เปรียบเทียบ x กับองค์ประกอบตรงกลาง

ขั้นตอนที่ 2: หาก x ตรงกับองค์ประกอบกลางคุณจะต้องส่งคืนดัชนีกลาง

ขั้นตอนที่ 3: มิฉะนั้นถ้า x มากกว่าองค์ประกอบกลาง x จะอยู่ในอาร์เรย์ครึ่งด้านขวาหลังองค์ประกอบกลางเท่านั้น ดังนั้นคุณกลับมาครึ่งขวา

ขั้นตอนที่ 4: มิฉะนั้นถ้า (x เล็กกว่า) ให้ทำซ้ำสำหรับครึ่งซ้าย

นั่นคือวิธีที่คุณต้องค้นหาองค์ประกอบในอาร์เรย์ที่กำหนด

วิธีหาความยาวอาร์เรย์ในจาวาสคริปต์

ตอนนี้เรามาดูวิธีใช้อัลกอริทึมการค้นหาแบบไบนารีแบบวนซ้ำ โปรแกรมด้านล่างแสดงให้เห็นถึงสิ่งเดียวกัน

การค้นหาไบนารีแบบเรียกซ้ำ

คลาสสาธารณะ BinarySearch {// การใช้ Java ของการค้นหาแบบเรียกซ้ำ Binary Search // Returns index ของ x ถ้ามีอยู่ใน arr [l..h] มิฉะนั้นจะส่งคืน -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // ถ้าองค์ประกอบมีอยู่ตรงกลางถ้า (a [mid] == x) ส่งกลับ mid // if องค์ประกอบ มีขนาดเล็กกว่ากลางจากนั้นจะสามารถปรากฏใน subarray ด้านซ้ายเท่านั้นถ้า (a [mid]> x) ส่งคืน binarySearch (arr, l, mid - 1, x) // อื่น ๆ องค์ประกอบสามารถแสดงได้เฉพาะในส่วนย่อยด้านขวาเท่านั้นที่ส่งคืน binarySearch (arr, mid + 1, h, x)} // เรามาถึงที่นี่เมื่อองค์ประกอบไม่มีอยู่ใน array return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Element not present') else System.out.println ('Element found at index' + res)}}

ในการดำเนินการโปรแกรมข้างต้นจะค้นหาองค์ประกอบที่อยู่ในดัชนีเฉพาะ

พบองค์ประกอบที่ดัชนี 2

ดังนั้นเราจึงมาถึงจุดสิ้นสุดของการค้นหาแบบไบนารีใน Java บทความ. ฉันหวังว่าคุณจะพบว่าข้อมูลนี้เป็นประโยชน์และช่วยให้คุณเข้าใจ .

ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก เราอยู่ที่นี่เพื่อช่วยคุณในทุกขั้นตอนในการเดินทางของคุณสำหรับการเป็นนอกเหนือจากคำถามสัมภาษณ์ java นี้ เรามาพร้อมกับหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

ในกรณีที่คุณประสบปัญหาขณะใช้งาน Binary Search ใน โปรดระบุไว้ในส่วนความคิดเห็นด้านล่าง และเราจะติดต่อกลับโดยเร็วที่สุด