பைனரி தேடல் அல்காரிதம் என்பது Java நிரலாக்கத்தில் ஒரு திறமையான முறையாகும், இது வரிசைப்படுத்தப்பட்ட வரிசையில் ஒரு குறிப்பிட்ட மதிப்பைக் கண்டறியப் பயன்படுகிறது. இந்த அணுகுமுறை தொடர்ச்சியாக வரிசையை இரண்டு பகுதிகளாகப் பிரித்து, தேடல் மதிப்பை நடுத்தர உறுப்புடன் ஒப்பிடுகிறது.
பைனரி தேடல் அல்காரிதம் எவ்வாறு செயல்படுகிறது
பைனரி தேடல் அல்காரிதம் தேடல் மதிப்பை வரிசையின் நடுத்தர உறுப்புடன் ஒப்பிடுவதன் மூலம் தொடங்குகிறது. தேடல் மதிப்பு நடுத்தர உறுப்புக்கு சமமாக இருந்தால், அல்காரிதம் அந்த உறுப்பின் நிலையை வழங்குகிறது. தேடல் மதிப்பு நடுத்தர உறுப்பை விட குறைவாக இருந்தால், அல்காரிதம் வரிசையின் இடது பாதியில் தேடலைத் தொடர்கிறது. தேடல் மதிப்பு அதிகமாக இருந்தால், அல்காரிதம் வரிசையின் வலது பாதியில் தேடலைத் தொடர்கிறது. தேடல் மதிப்பு கண்டறியப்படும் வரை அல்லது தேடுவதற்கு கூடுதல் கூறுகள் எதுவும் இல்லாத வரை இந்த செயல்முறை மீண்டும் நிகழும்.
பைனரி தேடல் அல்காரிதத்தின் நன்மைகள் மற்றும் தீமைகள்
நன்மைகள்:
- உயர் செயல்திறன்: இந்த வழிமுறையானது ஒவ்வொரு அடியிலும் உள்ள உறுப்புகளில் பாதியை நீக்கி, பெரிய வரிசைகளுக்கான தேடலை மேம்படுத்துகிறது.
- குறைந்த நேர சிக்கலானது: இந்த அல்காரிதத்தின் நேர சிக்கலானது O(log n) ஆகும், இது பெரிய தரவுத்தொகுப்புகளுக்கு பயனுள்ளதாக இருக்கும்.
தீமைகள்:
- வரிசைப்படுத்தப்பட்ட வரிசை தேவை: அல்காரிதம் வரிசைப்படுத்தப்பட்ட வரிசைகளுடன் மட்டுமே வேலை செய்யும்.
எடுத்துக்காட்டு மற்றும் விளக்கம்
இல் வரிசைப்படுத்தப்பட்ட முழு எண் வரிசையில் ஒரு குறிப்பிட்ட முழு எண்ணைக் கண்டறிய பைனரி தேடல் அல்காரிதத்தைப் பயன்படுத்துவதற்கான உதாரணத்தைக் கவனியுங்கள் Java.
public class BinarySearchExample {
public static int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length- 1;
while(left <= right) {
int mid = left +(right- left) / 2;
if(array[mid] == target) {
return mid; // Return position if found
} else if(array[mid] < target) {
left = mid + 1;
} else {
right = mid- 1;
}
}
return -1; // Return -1 if not found
}
public static void main(String[] args) {
int[] numbers = { 1, 3, 5, 7, 9, 11, 13, 15 };
int target = 9;
int position = binarySearch(numbers, target);
if(position != -1) {
System.out.println("Element " + target + " found at position " + position);
} else {
System.out.println("Element " + target + " not found in the array");
}
}
}
இந்த எடுத்துக்காட்டில், வரிசைப்படுத்தப்பட்ட முழு எண் வரிசையில் எண் 9 ஐக் கண்டறிய பைனரி தேடல் அல்காரிதத்தைப் பயன்படுத்துகிறோம். அல்காரிதம் வரிசையின் மூலம் மீண்டும் இயங்குகிறது மற்றும் தேடல் மதிப்பை நடுத்தர மதிப்புடன் ஒப்பிடுகிறது. இந்த வழக்கில், வரிசையில் 4(0-அடிப்படையான குறியீட்டு) இல் எண் 9 காணப்படுகிறது.
இந்த உதாரணம் பைனரி தேடல் அல்காரிதம் வரிசைப்படுத்தப்பட்ட முழு எண் வரிசையில் ஒரு உறுப்பை எவ்வாறு கண்டறிய முடியும் என்பதை நிரூபிக்கும் அதே வேளையில், நிரலாக்கத்தில் உள்ள மற்ற தேடல் காட்சிகளுக்கும் இது பயன்படுத்தப்படலாம் Java.