Searching in Arrays using Java (Linear and Binary Search Explained)

 

Searching in Arrays (Linear and Binary Search in Java)


Introduction

Searching ka matlab hota hai kisi collection of data me se ek specific element ko find karna.

Programming me almost har real-world application me searching use hoti hai:

  • Google search

  • Contact list me naam find karna

  • E-commerce site par product search

  • Bank database me account search

  • Dictionary me word search karna

Isliye searching algorithms DSA ka core concept hain.

Array me searching ke do main approaches hote hain:

  1. Linear Search

  2. Binary Search

Dono ka working style aur efficiency different hoti hai.

Programming me bhi ye bahut important concept hai.


Linear Search

Definition

Linear Search ek simple searching algorithm hai jisme hum array ke har element ko sequentially check karte hain jab tak target value mil na jaye.


Real Life Example

Socho tum classroom me ho aur kisi specific student ko dhoondh rahe ho.

Tum ek-ek student se poochte jaoge.

Ye linear search hai.

Concept Samjho Simple Tarike Se

Socho tumhare paas ek bag hai jisme 10 books hain.

Tumhe “Math” wali book dhoondhni hai.

Tum kya karoge?

  • Pehli book check karoge

  • Fir doosri

  • Fir teesri

Jab tak Math wali book mil na jaye.

Ye hi Linear Search hai.


Java Implementation

public class Main { public static void main(String[] args) { int[] arr = {10, 20, 30, 40, 50}; int target = 30; int index = -1; for(int i = 0; i < arr.length; i++) { if(arr[i] == target) { index = i; break; } } if(index != -1) System.out.println("Element found at index: " + index); else System.out.println("Element not found"); } }

Time Complexity

Best Case → O(1)
Worst Case → O(n)

When to Use Linear Search?

✔ Jab array small ho
✔ Jab array sorted na ho
✔ Jab simplicity important ho


 Binary Search

Definition

Binary Search ek efficient searching algorithm hai jo sorted array par kaam karta hai.
Isme hum array ko repeatedly half karte hain jab tak element mil na jaye.

Binary Search divide-and-conquer technique par based hai.


Real Life Example

Dictionary me word search karte waqt:

  • Middle page open karte ho

  • Agar word usse pehle aata hai → left side

  • Agar baad me aata hai → right side

Ye binary search hai.


Condition

Array sorted hona chahiye.


Java Implementation

public class Main { public static void main(String[] args) { int[] arr = {10, 20, 30, 40, 50}; int target = 40; int left = 0; int right = arr.length - 1; int index = -1; while(left <= right) { int mid = left+ (left + right) / 2;
          //int mid = (left + right) / 2; you can write this also . if(arr[mid] == target) { index = mid; break; } else if(arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } if(index != -1) System.out.println("Element found at index: " + index); else System.out.println("Element not found"); } }

Time Complexity

Best Case → O(1)
Worst Case → O(log n)

Binary search linear search se faster hota hai.

Why We Use left + (right - left) / 2?

Ye overflow avoid karne ke liye best practice hai.
Interviews me ye detail poochi ja sakti hai.


Linear vs Binary Search

Linear Search:
✔ Works on unsorted array
❌ Slower

Binary Search:
✔ Very fast
❌ Requires sorted array

Important Interview Insight

Agar data sorted hai → Binary Search best choice.
Agar data unsorted hai → Linear Search use karo.

Kabhi-kabhi interviewer edge cases bhi poochta hai:

  • Target nahi mila

  • Duplicate elements

  • Empty array

In sab ka handle karna important hai.


Conclusion

Searching DSA ka basic aur important concept hai.
Interviews me frequently poocha jata hai.

Agar data sorted hai → Binary Search use karo
Agar data unsorted hai → Linear Search

Next article me hum Sorting Algorithms (Bubble, Selection, Insertion in Java) start karenge.

Comments

Popular posts from this blog

Binary Tree in Data Structures Explained in Depth (Concept, Types and Java Implementation)

Binary Tree Traversal Explained in Depth (Preorder, Inorder, Postorder with Java Code)

Recursion in Java Explained with Examples (Base Case, Recursive Case & Dry Run Guide)