מהו חיפוש בינארי בג'אווה? איך ליישם את זה?



חיפוש בינארי ב- Java הוא אלגוריתם חיפוש שמוצא את המיקום של ערך יעד בתוך מערך ממוין. במאמר זה אני אגיד לך כיצד ליישם את זה בעזרת דוגמה.

אלגוריתמי חיפוש ומיון הם אלגוריתמים פופולריים בכל שפות התכנות. הם הבסיס להבנת יסודות התכנות. אלגוריתם חיפוש פופולרי שכזה הוא חיפוש בינארי ב . במאמר זה אספר לכם הכל על יישומו.

הנושאים הבאים מכוסים במאמר זה:





בואו נתחיל!

מהו חיפוש בינארי?

חיפוש בינארי ב הוא אלגוריתם חיפוש שמוצא את המיקום של ערך יעד בתוך מיון מַעֲרָך . חיפוש בינארי משווה את ערך היעד לאלמנט האמצעי של המערך. זהעובד רק על קבוצה ממוינת של אלמנטים. כדי להשתמש בחיפוש בינארי באוסף, ה- חייבים למיין תחילה.



תוכנית חיפוש בינארי בגכאשר משמש לביצוע פעולות על קבוצה ממוינת, תמיד ניתן להקטין את מספר האיטרציות על בסיס הערך אותו מחפשים. אתה יכול לראות בתצלום המצוין למעלה את מציאת ה- אלמנט אמצע . האנלוגיה של חיפוש בינארי היא להשתמש במידע שהמערך ממוין ולהפחית את מורכבות הזמן אליו O (יומן n) .

יישום אלגוריתם חיפוש בינארי

בואו נסתכל על קוד הפסאודו להלן כדי להבין אותו בצורה טובה יותר.

נוהל binary_search A & larr מיון מערך n & larr גודל מערך x & ערך larr לחיפוש הגדר נמוך = 1 הגדר גבוה = n ואילו x לא נמצא אם גבוה

הֶסבֵּר:



שלב 1: ראשית, השווה את x עם האלמנט האמצעי.

שלב 2: אם x תואם את האלמנט האמצעי, עליך להחזיר את אינדקס האמצע.

שלב 3: אחרת, אם x גדול יותר מאלמנט האמצעי, אז x יכול לשכב רק בחצי מערך הצד הימני אחרי האלמנט האמצעי. מכאן שאתה חוזר על החצי הנכון.

שלב 4: אחרת, אם (x קטן יותר) אז תחזור לחצי השמאלי.

כך עליכם לחפש את האלמנט במערך הנתון.

מה עושה התראה ב JavaScript

בואו נראה כעת כיצד ליישם אלגוריתם חיפוש בינארי באופן רקורסיבי. התוכנית שלהלן מדגימה את אותו הדבר.

חיפוש בינארי רקורסיבי

מחלקה ציבורית BinarySearch {// יישום Java של חיפוש בינארי רקורסיבי // מחזיר אינדקס של 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) חזור באמצע // If element הוא קטן יותר מאמצע, ואז הוא יכול להיות נוכח רק במערך המשנה השמאלי אם (אמצע [אמצע]> x) להחזיר בינארי (arr, l, אמצע - 1, x) // אחרת האלמנט יכול להיות נוכח רק בתכנית הימנית (arr, mid + 1, h, x)} // נגיע לכאן כאשר האלמנט אינו קיים במערך החזר -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a. אורך int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) אם (res == -1) System.out .println ('אלמנט לא קיים') אחר System.out.println ('אלמנט נמצא באינדקס' + res)}}

בעת ביצוע התוכנית לעיל, היא תאתר את האלמנט הקיים באינדקס המסוים

אלמנט נמצא באינדקס 2

אז זה מביא אותנו לסוף החיפוש הבינארי ב ג'אווה מאמר. אני מקווה שמצאת את זה אינפורמטיבי ועזרת לך להבין .

בדוק את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפרוסים ברחבי העולם. אנחנו כאן כדי לעזור לך בכל צעד בדרכך, ולהיות מלבד שאלות ראיונות אלה ב- Java. אנו מעלים תוכנית לימודים המיועדת לסטודנטים ואנשי מקצוע המעוניינים להיות מפתח Java. הקורס נועד לתת לך יתרון לתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות Java שונות כמו Hibernate & Spring.

במקרה שאתה נתקל בקשיים כלשהם בעת הטמעת חיפוש בינארי ב אנא הזכיר זאת בסעיף ההערות למטה ונחזור אליך לכל המוקדם.