நேரியல் மற்றும் பைனரி தேடல் வழிமுறைகள் விளக்கப்பட்டுள்ளன

நேரியல் மற்றும் பைனரி தேடல் வழிமுறைகள் விளக்கப்பட்டுள்ளன

சில தரவுகளைத் தேடும் திறன் கணினி அறிவியலின் ஒரு முக்கிய அம்சமாகும். தரவு தொகுப்பில் ஒரு குறிப்பிட்ட உருப்படியைத் தேட தேடல் வழிமுறைகள் பயன்படுத்தப்படுகின்றன.





அல்காரிதம்கள் ஒரு பூலியன் முடிவை (உண்மை அல்லது பொய்) தேடல் வினவலுக்குத் தருகின்றன. கண்டுபிடிக்கப்பட்ட மதிப்பின் ஒப்பீட்டு நிலையை கொடுக்க அவை மாற்றியமைக்கப்படலாம்.





இந்த கட்டுரைக்கு, வழிமுறை ஒரு மதிப்பு இருக்கிறதா என்பதை தீர்மானிப்பதில் கவனம் செலுத்தும்.





நேரியல் தேடல் வழிமுறைகள்

நேரியல் தேடல் தொடர் தேடல் என்றும் அழைக்கப்படுகிறது. இந்த வகை தேடலில், விரும்பிய மதிப்பு இருக்கிறதா என்று சோதிக்கும் போது, ​​பட்டியலில் உள்ள ஒவ்வொரு மதிப்பும் ஒவ்வொன்றாக ஒரு ஒழுங்கான முறையில் பார்வையிடப்படும்.

நீங்கள் தேடும் மதிப்பை கண்டுபிடிக்கும் வரை அல்லது தேட வேண்டிய மதிப்புகள் தீரும் வரை அல்காரிதம் மதிப்பின் மதிப்பை சரிபார்க்கிறது. தேட வேண்டிய மதிப்புகள் தீர்ந்துவிட்டால், உங்கள் தேடல் வினவல் பட்டியலில் இல்லை என்று அர்த்தம்.



தொடர்ச்சியான தேடல் அல்காரிதம் மதிப்புகளின் பட்டியலையும் பட்டியலில் உள்ள விரும்பிய உருப்படியையும் அதன் அளவுருக்களாக எடுத்துக்கொள்கிறது. ரிட்டர்ன் ரிசல்ட் என ஆரம்பிக்கப்பட்டுள்ளது பொய் மற்றும் க்கு மாறும் உண்மை விரும்பிய மதிப்பு கண்டுபிடிக்கப்படும் போது.

கீழே உள்ள பைதான் செயல்பாட்டை உதாரணமாகக் காண்க:





def linearSearch(mylist, item):
found = False
index = 0
while index if mylist[index] == item:
found = True
else:
index = index+1
return found

அல்காரிதம் பகுப்பாய்வு

விரும்பிய உருப்படி பட்டியலில் முதல் இடத்தில் இருக்கும்போது சிறந்த சூழ்நிலை ஏற்படுகிறது. விரும்பிய உருப்படி பட்டியலில் கடைசி இடத்தில் இருக்கும் போது மிக மோசமான நிலை ஏற்படுகிறது (n வது உருப்படி). எனவே, நேரியல் தேடலுக்கான நேர சிக்கலானது O (n).

மேலே உள்ள அல்காரிதத்தில் சராசரி வழக்கு காட்சி n/2 ஆகும்.





தொடர்புடையது: பிக்-ஓ குறிப்பு என்றால் என்ன?

பயன்படுத்தப்பட்ட அல்காரிதம் உருப்படிகளின் சீரற்ற பட்டியல் வழங்கப்பட்டதாக கருதுகிறது என்பதை அறிவது முக்கியம். அதாவது, பட்டியல் உருப்படிகள் குறிப்பிட்ட வரிசையில் இல்லை.

Google டாக்ஸில் விளிம்புகளை எவ்வாறு திருத்துவது

உருப்படிகள் ஒரு குறிப்பிட்ட வரிசையில் இருந்தன என்று வைத்துக்கொள்ளுங்கள், சிறியவை முதல் பெரியவை வரை. கணக்கீட்டில் சில நன்மைகளை அடைய முடியும்.

கொடுக்கப்பட்ட பட்டியலில் 19 ஐ தேடுவதற்கான உதாரணத்தை எடுத்துக் கொள்ளுங்கள்: [2, 5, 6, 11, 15, 18, 23, 27, 34]. 23 ஐ அடைந்த பிறகு, தேடப்படும் உருப்படி பட்டியலில் இல்லை என்பது தெளிவாகிறது. எனவே, மீதமுள்ள பட்டியல் உருப்படிகளைத் தேடுவது இனி முக்கியம் இல்லை.

பைனரி தேடல் வழிமுறைகள்

ஆர்டர் செய்யப்பட்ட பட்டியல் தேவையான கணக்கீட்டை எவ்வாறு குறைக்கும் என்பதை நீங்கள் பார்த்திருப்பீர்கள். பைனரி தேடல் அல்காரிதம் இந்த செயல்திறனை இன்னும் அதிக சாதகமாக எடுத்துக்கொள்கிறது.

வரிசைப்படுத்தப்பட்ட பட்டியலின் நடுத்தர மதிப்பை எடுத்து, அது விரும்பிய மதிப்பைச் சரிபார்ப்பதன் மூலம் அல்காரிதம் தொடங்குகிறது. அது இல்லையென்றால், அது விரும்பிய மதிப்பை விட குறைவாகவோ அல்லது அதிகமாகவோ மதிப்பிடப்படுகிறது.

இது குறைவாக இருந்தால், பட்டியலின் கீழ் பாதியை சரிபார்க்க வேண்டிய அவசியமில்லை. இல்லையெனில், அது அதிகமாக இருந்தால், அது பட்டியலின் மேல் பாதிக்கு நகரும்.

தொடர்புடையது: மறுசீரமைப்பு என்றால் என்ன, அதை நீங்கள் எவ்வாறு பயன்படுத்துகிறீர்கள்?

எந்த துணைப்பட்டியல் (இடது அல்லது வலது) தேர்ந்தெடுக்கப்பட்டாலும், நடுத்தர மதிப்பு மீண்டும் தீர்மானிக்கப்படும். தேவையான மதிப்பு இருந்தால் மதிப்பு மீண்டும் சரிபார்க்கப்படுகிறது. அது இல்லையென்றால், அது கோரப்பட்ட மதிப்பை விடக் குறைவானதா அல்லது அதிகமா என்று சோதிக்கப்படும்.

உங்களை உளவு பார்க்கும் ஒருவரை எப்படி பிடிப்பது

ஒரு மதிப்பு இருக்கும் வரை இந்த செயல்முறை மீண்டும் செய்யப்படும்.

கீழே உள்ள பைதான் செயல்படுத்தல் பைனரி தேடல் வழிமுறையாகும்.

டெஃப் பைனரி தேடல் (மைலிஸ்ட், உருப்படி):

low = 0
high = len(mylist) - 1
found = False
while low <= high and not found: mid = (low + high) // 2
if mylist[mid] == item:found = True
elif item else:low = mid + 1
return found

அல்காரிதம் பகுப்பாய்வு

விரும்பிய பொருள் நடுத்தர உருப்படியைக் காணும்போது சிறந்த சூழ்நிலை ஏற்படுகிறது. மிக மோசமான சூழ்நிலை நேரடியானதாக இல்லை. கீழே உள்ள பகுப்பாய்வைப் பின்பற்றவும்:

முதல் ஒப்பீட்டிற்குப் பிறகு, n/2 உருப்படிகள் விடப்படும். இரண்டாவது பிறகு, n/4 உருப்படிகள் விடப்படும். மூன்றாவது, n/8 க்குப் பிறகு.

நான் ஒப்பீடுகளின் எண்ணிக்கையான n/2i ஐ அடையும் வரை பொருட்களின் எண்ணிக்கை பாதியாகக் குறைவதை கவனிக்கவும். அனைத்து பிளவுக்கும் பிறகு, நாங்கள் 1 உருப்படியை மட்டுமே முடிப்போம்.

இது குறிக்கிறது:

n/2i = 1 எனவே, பைனரி தேடல் O (log n).

வரிசைப்படுத்துவதற்கு நகரும்

பைனரி தேடலில், கொடுக்கப்பட்ட வரிசை ஏற்கனவே ஆர்டர் செய்யப்பட்ட ஒரு வழக்கை நாங்கள் கருத்தில் கொண்டோம். ஆனால் உங்களிடம் வரிசைப்படுத்தப்படாத தரவுத்தொகுப்பு உள்ளது என்று வைத்துக்கொள்வோம், அதில் நீங்கள் பைனரி தேடலை செய்ய விரும்பினீர்கள். நீங்கள் என்ன செய்வீர்கள்?

பதில் எளிது: வரிசைப்படுத்து. கணினி அறிவியலில் பல வகைப்படுத்தல் நுட்பங்கள் நன்கு ஆராய்ச்சி செய்யப்பட்டுள்ளன. நீங்கள் படிக்கத் தொடங்கும் இந்த உத்திகளில் ஒன்று தேர்வு வரிசைமுறை அல்காரிதம் ஆகும், அதே சமயம் மற்ற பகுதிகளுடன் தொடர்புடைய ஏராளமான வழிகாட்டிகள் எங்களிடம் உள்ளன.

பகிர் பகிர் ட்வீட் மின்னஞ்சல் தேர்வு வரிசையை எவ்வாறு பயன்படுத்துவது

தேர்வு வரிசையானது ஆரம்பநிலைக்கு புரிந்துகொள்ள கொஞ்சம் தந்திரமானது, ஆனால் நீங்கள் விஷயங்களை ஊக்குவித்தால் அது மிகவும் சவாலானது அல்ல.

அடுத்து படிக்கவும்
தொடர்புடைய தலைப்புகள்
  • நிரலாக்க
  • தொழில்நுட்பம் விளக்கப்பட்டது
  • நிரலாக்க
  • வழிமுறைகள்
  • தரவு பகுப்பாய்வு
எழுத்தாளர் பற்றி ஜெரோம் டேவிட்சன்(22 கட்டுரைகள் வெளியிடப்பட்டன)

ஜெரோம் MakeUseOf இல் ஒரு எழுத்தாளர். அவர் நிரலாக்க மற்றும் லினக்ஸ் பற்றிய கட்டுரைகளை உள்ளடக்கியுள்ளார். அவர் ஒரு கிரிப்டோ ஆர்வலராகவும், கிரிப்டோ தொழிற்துறையில் எப்பொழுதும் தாவல்களை வைத்திருப்பார்.

ஜெரோம் டேவிட்சனிடமிருந்து மேலும்

எங்கள் செய்திமடலுக்கு குழுசேரவும்

தொழில்நுட்ப குறிப்புகள், மதிப்புரைகள், இலவச மின் புத்தகங்கள் மற்றும் பிரத்யேக ஒப்பந்தங்களுக்கு எங்கள் செய்திமடலில் சேரவும்!

குழுசேர இங்கே சொடுக்கவும்