[Powered by Google Translate] [இரும தேடல்]
[பேட்ரிக் ஷ்சூமிட்டின் - ஹார்வர்ட் பல்கலைக்கழகம்]
[இந்த CS50 உள்ளது. - CS50.TV]
>> நான் அகரவரிசையில் நீங்கள் டிஸ்னி பாத்திரங்களின் பெயர்கள் பட்டியலை கொடுத்தார் என்றால்
மேலும், மிக்கி மவுஸ் கண்டுபிடிக்க நீங்கள் கேட்டு
எப்படி இதை பற்றி போக முடியும்?
ஒரு தெளிவான வழி தொடக்கத்தில் இருந்து பட்டியல் ஸ்கேன் செய்ய வேண்டும்
அது மிக்கி என்று பார்க்க ஒவ்வொரு பெயரை சரிபார்க்கவும்.
ஆனால் நீ அடிக்கடி அலாதீன், ஆலிஸ், ஏரியல், வாசிக்க மற்றும்,
நீங்கள் விரைவில் பட்டியல் முன் தொடங்கி ஒரு நல்ல யோசனை அல்ல என்று புரியும்.
சரி, ஒருவேளை நீங்கள் பட்டியலை முடிவில் இருந்து பின்னோக்கி வேலை தொடங்க வேண்டும்.
இப்போது நீங்கள் டார்சன் கோஸ் டு, தைத்து, ஸ்னோ ஒயிட், மற்றும் நான்காவது வாசிக்க.
இன்னும், இது பற்றி செல்ல சிறந்த வழி போல் தெரியவில்லை.
>> நன்றாக, நீங்கள் இதை பற்றி செல்ல முடியும் என்று மற்றொரு வழி அதிகரிக்கவும் முயற்சி ஆகும்
நீங்கள் பார்க்க வேண்டும் என்று பெயர்கள்.
நீங்கள் அவர்கள் அகரவரிசையில் என்று பின்னர்,
நீங்கள் பட்டியல் மத்தியில் பெயர்கள் பார்க்க முடியும்
மிக்கி மவுஸ் இந்த பெயரை முன் அல்லது பின் என்று பாருங்கள்.
இரண்டாவது நிரலை கடந்த பெயரை பார்த்தால்
நீங்கள், அந்த மிக்கி எம் ஜாஸ்மின் ஒரு ஜே பின்னர் வரும் உணர விரும்புகிறேன்
எனவே வெறுமனே பட்டியலில் முதல் அரை தவிர்க்க விரும்புகிறேன்.
பின்னர் ஒருவேளை நீங்கள் கடந்த பத்தியில் மேல் இருக்கும் என்று
அது Rapunzel தொடங்குகிறது என்று பார்க்க.
மிக்கி Rapunzel முன் வரும்; நாங்கள் அதே கடைசி பத்தியில் தவிர்க்க முடியும் தெரிகிறது.
தேடல் உத்தியை தொடர்ந்து, நீங்கள் விரைவில் காண்பீர்கள் என்று மிக்கி
பெயர்கள் மீதமுள்ள பட்டியலில் முதல் பாதியில் உள்ளது
இறுதியாக மிக்கி மெர்லின் மற்றும் மின்னி இடையே மறைத்து கண்டறிய.
>> நீங்கள் என்ன அடிப்படையில் இரும தேடல் இருந்தது.
இந்த பெயர் குறிப்பிடுவதுபோல், அது ஒரு பைனரி விஷயத்தில் அதன் தேடல் உத்தியை செய்கிறது.
இதற்கு என்ன அர்த்தம்?
நன்றாக, வரிசைப்படுத்தப்பட்ட பட்டியல் கொடுக்கப்பட்ட, பைனரி தேடல் வழிமுறை ஒரு பைனரி முடிவு செய்கிறது -
இடது அல்லது வலது, அதிகமாக அல்லது குறைவாக முன் அல்லது பின் அகர வரிசைப்படி, மேல் - ஒவ்வொரு கட்டத்திலும்.
இப்போது நாம் இந்த தேடல் வழிமுறை இணைந்து செல்லும் ஒரு பெயர் உண்டு என்று,
இது மற்றொரு எடுத்துக்காட்டு பார்த்து விட்டு, ஆனால் இந்த நேரம் வரிசையில் எண்கள் பட்டியல்.
நாம் வரிசைப்படுத்தப்பட்ட எண்கள் இந்த பட்டியலில் எண் 144 தேடுகின்றனர் என்று.
முன்பு போல தான், நாங்கள் நடுத்தர உள்ள எண்ணை கண்டறிய -
இந்த வழக்கில் 13 - மற்றும் 144 க்கும் அதிகமான அல்லது 13 ஐ விட குறைவாக இருந்தால் பார்க்க.
அது 13 க்கும் தெளிவாக அதிக என்பதால், நாம் 13 அல்லது குறைவாக என்று எல்லாம் தவிர்க்க முடியாது
மற்றும் மீதமுள்ள பாதி கவனம்.
நாம் இப்போது விட்டு பொருட்களை கூட எண்ணை, ஏனெனில்
நாம் வெறுமனே நடுத்தர நெருக்கமான ஒரு எண்ணை தேர்வு.
இந்த வழக்கில் நாம் 55 தேர்வு.
நாம் எளிதாக 89 தேர்வு.
சரி. மீண்டும், 144 55 க்கும் அதிகமாக உள்ளது, எனவே சரியான சென்று.
அதிர்ஷ்டவசமாக எங்களுக்கு, அடுத்த நடுத்தர எண், 144 ஆகும்
நாம் தேடும் ஒரு.
ஒரு பைனரி தேடல் பயன்படுத்தி 144 கண்டுபிடிக்க மிகவும் பொருட்டு, நாம் மட்டும் 3 படிகளில் அதை கண்டுபிடிக்க முடிகிறது.
நாம் இங்கே நேரியல் தேடல் பயன்படுத்த வேண்டும் என்றால், அது 12 முயற்சியில்லாமல்.
உண்மையில் ஒரு விஷயத்தை போல, இந்த தேடல் முறை பொருட்களை எண்ணிக்கை பாதிகளுக்கு
ஒவ்வொரு படியிலும் பார்க்க வேண்டும், அது தேடி உருப்படியை கண்டுபிடிக்கும்
பட்டியலில் உருப்படிகளின் எண்ணிக்கையை பதிவு பற்றி உள்ள.
இப்போது நாம் 2 உதாரணங்கள் பார்த்திருக்கிறேன் என்று, தான் பார்த்து விட்டு
இரும தேடல் செயல்படுத்தும் ஒரு சுழல்நிலை செயல்பாடு சில சூடோகுறியீடு.
மேலே தொடங்கி, நாங்கள் 4 வாதங்களை எடுத்து ஒரு செயல்பாட்டை கண்டறிய வேண்டும் என்று பார்க்க:
முக்கிய, வரிசை, நிமிடம், மற்றும் அதிகபட்சம்.
முக்கிய நாம் முந்தைய எடுத்துக்காட்டில் அதனால் 144, தேடுகிறீர்கள் என்று எண்.
வரிசை நாம் தேடும் அந்த எண்களின் பட்டியல்.
Min மற்றும் அதிகபட்சம் குறைந்தபட்ச மற்றும் அதிகபட்ச நிலைகளை குறியீடுகள் உள்ளன
நாம் தற்போது பார்க்கிறாய் என்று.
எனவே தொடங்கலாம் போது, நாள் பூஜ்ஜியமாக இருக்கும் மற்றும் அதிகபட்ச அணியின் அதிகபட்ச அட்டவணை இருக்கும்.
நாம் தேடல் சொற்களை போல், நாம் நாள் மற்றும் அதிகபட்சம் புதுப்பிப்போம்
நாம் இன்னும் உள்ளே இருக்கும் என்று தான் வரம்பில் இருக்க வேண்டும்
>> முதல் சுவாரஸ்யமான பகுதி தவிர்க்கவும் நாம்.
நாம் முதல் விஷயம், இடையில் கண்டறிய உள்ளது
பாதியில் நாம் இன்னும் பரிசீலித்து, அந்த அணியின் நாள் மற்றும் அதிகபட்சம் இடையில் என்று குறியீட்டு.
நாம் அது இடையில் இடத்தில் வரிசை மதிப்பு பாருங்கள்
நாம் தேடும் அந்த எண்ணை முக்கிய விட குறைவாக இருந்தால் பார்க்கலாம்.
அந்த இடத்தில் எண்ணை குறைவாக இருந்தால்,
அது முக்கிய நிலையை இடது அனைத்து எண்கள் விட பெரியதாக உள்ளது என்று பொருள்.
எனவே, மீண்டும் இரும தேடல் செயல்பாடு அழைக்க முடியும்
ஆனால் இந்த முறை பாதி வாசிக்க நாள் மற்றும் அதிகபட்சம் அளவுருக்கள் மேம்படுத்தும்
அந்த விட அல்லது நாம் தான் பார்த்து மதிப்பு சமமாக இருக்கும்.
மறுபுறம், முக்கிய வரிசை தற்போதைய இடையில் உள்ள எண்ணை விட குறைவாக இருந்தால்,
நாம் இடது சென்று அதிக அனைத்து எண்கள் புறக்கணிக்க வேண்டும்.
மீண்டும், நாம் நாள் மற்றும் அதிகபட்சம் புதுப்பித்தார் வரம்பில் இரும தேடல் ஆனால் இந்த முறை அழைப்பு
ஒரு குறைந்த அரை சேர்க்க.
அணியின் தற்போதைய இடையில் உள்ள மதிப்பு இல்லை என்றால்
விட பெரிய அல்லது முக்கிய விட சிறிய, அது முக்கிய சமமாக இருக்க வேண்டும்.
எனவே, நாங்கள் வெறுமனே தற்போதைய இடையில் குறியீட்டு திரும்ப முடியும், மற்றும் நாம் முடித்துவிட்டீர்கள்.
இறுதியாக, இங்கே இந்த காசோலை வழக்கு என்று பல
நாம் தேடும் எண்கள் வரிசையில் உண்மையில் இல்லை.
நாம் தேடும் அந்த எல்லை அதிகபட்ச அட்டவணை
குறைந்தபட்ச விட எப்போதும் குறைவாகவே உள்ளது, என்று நாம் வெகு தூரம் சென்றுவிட்டேன் என்று பொருள்.
எண் உள்ளீடு வரிசை இல்லை என்பதால், நாம் -1 திரும்ப
எதுவும் குறிப்பிட கண்டுபிடிக்கப்பட்டது.
>> நீங்கள், இந்த வழிமுறையை வேலை செய்ய கவனித்தனர்
எண்களின் பட்டியல் வரிசையில் வேண்டும்.
வேறுவிதமாக கூறினால், நாம் மட்டும் இரும தேடல் பயன்படுத்தி 144 காணலாம்
அனைத்து எண்கள் குறைந்த இருந்து அதிக உத்தரவிட்டார் இருந்தால்.
இந்த வழக்கில் இல்லை என்றால், நாம் ஒவ்வொரு படியிலும் எண்கள் பாதி தவிர்க்க முடியாது.
எனவே 2 தேர்வுகள் உண்டு.
ஒன்று நாம், பைனரி தேடல் பயன்படுத்தி முன் ஒரு வரிசையாக்கம் செய்யப்படாத பட்டியல் எடுத்து அடுக்க முடியும்
அல்லது நாம் அது எண்கள் சேர்க்க என எண்களின் பட்டியல் வரிசைப்படுத்தப்பட்டுள்ளது என்று உறுதி செய்யலாம்.
எனவே, அதற்கு பதிலாக நாம் தேட வேண்டும் வெறும் போது வரிசையாக்கம்,
ஏன் எல்லா நேரங்களிலும் வரிசைப்படுத்தப்பட்ட பட்டியலை வைத்து?
>> ஒரே நேரத்தில் அனுமதிக்கும் போது எண்கள் பட்டியல் வைக்க ஒரு வழி வரிசைப்படுத்தப்பட்ட
இந்த பட்டியலில் இருந்து எண்கள் சேர்க்க அல்லது நகர்த்த
ஒரு பைனரி தேடல் மரம் எனப்படும் ஒன்றை பயன்படுத்தி வருகிறது.
ஒரு பைனரி தேடல் மரம் 3 சொத்துக்களின் தகவல்களை வைத்துள்ளார் என்று ஒரு தரவு கட்டமைப்பு உள்ளது.
முதல், எந்த முனை இடது உபப்படிநிலையின் விட குறைவாக மட்டுமே மதிப்புகள் கொண்டுள்ளது
அல்லது கணு மதிப்பு சமமாக.
இரண்டாவது, ஒரு முனை வலது உபப்படிநிலையின் மட்டும் அதிகமாக இருக்கும் என்று மதிப்புகள் கொண்டுள்ளது
அல்லது கணு மதிப்பு சமமாக.
அனைத்து கணுக்களின் மற்றும், இறுதியாக, இடது மற்றும் வலது subtrees இரு
மேலும் இரும தேடல் மரங்கள்.
நாம் முன்னர் பயன்படுத்திய அதே எண்கள் ஒரு உதாரணம் பாருங்கள் நாம்.
ஒரு கணினி அறிவியல் மரம் முன் பார்த்ததில்லை என்று நீங்கள் அந்த,
என்னை ஒரு கணினி அறிவியல் மரம் கீழ்நோக்கி வளரும் என்று கூறி ஆரம்பிக்கலாம்.
ஆமாம், நீங்கள் தயார்படுத்தப்படுகிறார்கள் மரங்கள் போல்,
ஒரு கணினி அறிவியல் மரத்தின் வேர், மேல் உள்ளது
மற்றும் இலைகள் கீழே இருக்கும்.
ஒவ்வொரு சிறிய பெட்டியில் ஒரு முனை என அழைக்கப்படும், மற்றும் முனைகளில் முனைகளை ஒவ்வொரு மற்ற இணைக்கப்பட்டுள்ளது.
இந்த மரத்தின் வேர், மதிப்பு 13 ஒரு முனை மதிப்பு
இது மதிப்புகள் 5 மற்றும் 34 2 குழந்தைகள் முனைகளில் உள்ளது.
ஒரு உபப்படிநிலையின் தான் முழு மரம் ஒரு துணைப்பிரிவில் பார்த்து உருவாக்கப்பட்டது என்று மரம்.
>> எடுத்துக்காட்டாக, முனை 3 இடது உபப்படிநிலையின் முனைகளில் 0, 1, 2 விவரங்களை மரம்.
எனவே, நாம் ஒரு பைனரி தேடல் மரம் பண்புகள் திரும்பி சென்றால்,
நாம், மரம் ஒவ்வொரு கணு அதாவது அனைத்து 3 பண்புகள், ரத்து போகிறது என்று பார்க்க
இடது உபப்படிநிலையின் மட்டுமே குறைவாக அல்லது கணு மதிப்பு சமமாக இருக்கும் மதிப்புகள் கொண்டுள்ளது;
அனைத்து முனைகளில் வலது உபப்படிநிலையின்
மட்டுமே அதிகமாக அல்லது கணு மதிப்பு சமமாக இருக்கும் மதிப்புகள் கொண்டுள்ளது; மற்றும்
அனைத்து முனைகளில் இடது மற்றும் வலது இரண்டு subtrees மேலும் இரும தேடல் மரங்கள்.
இந்த மரம் வித்தியாசமாக தெரிகிறது எனினும், இந்த சரியான பைனரி தேடல் மரம்
எண்கள் ஒரே செட்.
உண்மையில் ஒரு விஷயத்தை, நீங்கள் உருவாக்க முடியும் என்று பல வழிகளிலும் உள்ளன
இந்த எண்கள் இருந்து சரியான பைனரி தேடல் மரம்.
சரி, நாம் உருவாக்கிய முதல் மீண்டும் செல்லலாம்.
எனவே நாம் இந்த மரங்கள் என்ன செய்ய முடியும்?
சரி, நாம் மிக எளிதாக குறைந்த பட்ச மற்றும் அதிகபட்ச மதிப்புகள் காணலாம்.
குறைந்தபட்ச மதிப்புகள் எப்போதும் இடது செல்வதன் மூலம் காணலாம்
பார்க்க இன்னும் முனைகள் உள்ளன வரை.
மாறாக, அதிகபட்ச ஒரு தேட தான் ஒவ்வொரு நேரத்தில் சரியான கீழே செல்லும்.
>> வேறு எந்த கண்டுபிடித்து குறைந்தபட்ச அல்லது அதிகபட்ச என்று
தான் எளிது.
நாம் எண் 89 தேடுகிறீர்கள் என்று.
நாம் சாதாரணமாக, ஒவ்வொரு கணு மதிப்பு சரிபார்த்து இடது அல்லது வலது சென்று
கணு மதிப்பு குறைவாக அல்லது அதிகமாக உள்ளது என்பதை பொறுத்து
நாம் தேடும் ஒரு.
எனவே, 13 வேர் தொடங்கி, நாம், 89 அதிகம் என்று பார்க்க
அதனால் நாம் சரியான சென்று.
நாம் 34 க்கு முனை பார்க்க, மீண்டும் நாம் சரியான சென்று.
89 இன்னும் 55 விட அதிகமாக உள்ளது, எனவே சரியான போகிறேன் தொடர்ந்து.
நாம் 144 மதிப்பு கொண்ட ஒரு முனை வரை வந்து இடது சென்று.
லோ மற்றும் இதோ, 89 உரிமை உள்ளது.
>> நாம் என்ன செய்ய முடியும் என்று மற்றொரு விஷயம் ஒரு inorder பயணித்தல் மூலம் அனைத்து எண்கள் அவுட் அச்சிட உள்ளது.
ஒரு inorder பயணித்தல் இடது உபப்படிநிலையின் எல்லாம் வெளியே அச்சிட பொருள்
கணு தன்னை அச்சிடும் தொடர்ந்து
பின்னர் வலது உபப்படிநிலையின் எல்லாம் அச்சிடுகிறது தொடர்ந்து.
உதாரணமாக, நாம் பிடித்த இரும தேடல் மரம் எடுத்து விடுங்கள்
மற்றும் வரிசைப்படுத்தப்பட்ட வரிசையில் எண்கள் அவுட் அச்சிட.
நாங்கள் 13 ரூட் துவங்க, ஆனால் அச்சிடும் 13 முன்னர் நாம் வெளியே அச்சிட வேண்டும்
இடது உபப்படிநிலையின் எல்லாம்.
எனவே 5 சென்று. நாம் இன்னும், நாம் இடது மிகவும் முனை வரும் வரை மரத்தில் ஆழ்ந்த கீழே போக வேண்டும்
இது பூஜ்ஜியம்.
அச்சிடும் பூஜ்யம் பிறகு, நாம் 1 திரும்பி சென்று அந்த அச்சிட.
நாம் 2 இது, சரியான உபப்படிநிலையின் சென்று, அந்த அவுட் அச்சிட.
இப்போது நாம், அந்த உபப்படிநிலையின் முடித்துவிட்டீர்கள்
நாங்கள் 3 மீண்டும் எழுந்து சென்று அச்சிட முடியாது.
வரை மீண்டும் தொடரும், நாங்கள் 8 பின்னர் 5 அச்சிட்டு.
இப்போது நாம் முழு நிறைவு என்று, உபப்படிநிலையின் விட்டு
நாங்கள் 13 அச்சிட மற்றும் வலது உபப்படிநிலையின் வேலை செய்ய.
நாங்கள் 34 கீழே ஹாப், ஆனால் அச்சிடும் 34 முன்னர் நாம் அதன் இடது உபப்படிநிலையின் அவுட் அச்சிட வேண்டும்.
எனவே 21 அவுட் அச்சிட; நாம் 34 அவுட் அச்சிட மற்றும் அதன் வலது உபப்படிநிலையின் பார்க்க கிடைக்கும்.
55 எந்த இடது உபப்படிநிலையின் ஏனெனில், நாம் அதை அச்சிட்டு, அதன் வலது உபப்படிநிலையின் மீது தொடர்ந்து.
144 ஒரு இடது உபப்படிநிலையின் உள்ளது, எனவே நாம், 144 தொடர்ந்து, 89 அவுட் அச்சிட
233 மற்றும் இறுதியாக வலது மிக முனை.
அங்கு நீங்கள் இது; அனைத்து எண்கள் குறைந்த இருந்து அதிக பொருட்டு வெளியே அச்சிடப்படுகிறது.
>> மரம் ஒன்று சேர்த்தல் மற்றும் ஒப்பீட்டளவில் வலியற்றது.
நாம் செய்ய வேண்டியது எல்லாம் நாங்கள் 3 இரும தேடல் மரம் பண்புகளை பின்பற்ற என்பதையும் உறுதி
விண்வெளி, அங்கு பின்னர் மதிப்பை செருக.
நாம் 7 மதிப்பை செருக வேண்டும் என்று.
7 குறைவாக 13 என்பதால், நாம் இடது சென்று.
ஆனால் அது 5 விட, நாம் சரியான நடந்தே செல்கிறார்கள்.
இது 8 மற்றும் 8 ஒரு இலை கணு என்பது குறைவான என்பதால், நாம் 8 இடது குழந்தை 7 சேர்க்க.
Voila! நாம் தேடும் ரும மரத்தை ஒரு எண்ணை சேர்க்க.
>> நாம் விஷயங்களை சேர்க்க முடியும் என்றால், நாங்கள் நல்ல நல்ல விஷயங்களை நீக்க முடியும்.
துரதிருஷ்டவசமாக எங்களுக்கு, நீக்குதல் சற்று சிக்கலான இல்லை -
மிக, ஆனால் ஒரு சிறிய பிட் இல்லை.
நாம் கருத்தில் கொள்ள வேண்டும் என்று 3 வெவ்வேறு சூழல்களில் உள்ளன
இரும தேடல் மரங்கள் கூறுகளை நீக்குவதற்கு போது.
முதல், எளிதான வழக்கு உறுப்பு ஒரு இலை முனை உள்ளது.
இந்த வழக்கில், நாம் வெறுமனே அதை நீக்க எங்கள் வணிக உடன் சென்று.
நாம் தான் சேர்க்க வேண்டும் என்று 7 நீக்க வேண்டும் என்று.
சரி, நாம் வெறுமனே அதை கண்டு, அதை நீக்க, அவ்வளவு தான்.
முனை மட்டுமே 1 குழந்தை இருந்தால் அடுத்த விஷயம்.
இங்கே நாம் முனை நீக்க முடியும், ஆனால் நாம் முதலில் உறுதி செய்ய வேண்டும்
இப்போது பெற்றோர் விட்டு என்று உபப்படிநிலையின் இணைக்க
கணு மூல நாம் மட்டும் நீக்கப்பட்டது.
நாம் நம் மரத்தில் இருந்து 3 நீக்க வேண்டும் என்று.
நாம் அந்த முனை குழந்தை உறுப்பு எடுத்து கணு மூல இணைக்கவும்.
இந்த வழக்கில், நாம் இப்போது 5 1 இணைக்கிறேன்.
எங்களுக்கு தெரியும் இந்த, பைனரி தேடல் மரம் சொத்து படி, ஒரு பிரச்சனையும் இல்லாமல் வேலை
3 இடது உபப்படிநிலையின் என்று எல்லாவற்றையும் விட குறைவாக 5 இருந்தது.
3 உபப்படிநிலையின் கவனித்துக்கொள்வதே இப்போது, நாம் அதை நீக்க முடியும்.
மூன்றாவது மற்றும் இறுதி வழக்கு மிகவும் சிக்கலாக உள்ளது.
நாங்கள் நீக்க வேண்டும் முனை 2 குழந்தைகள் இருக்கும் போது இந்த வழக்கு.
இதை செய்ய வேண்டும், நாங்கள் முதல், அடுத்த பெரிய மதிப்பு கொண்ட முனை கண்டறிய வேண்டும்
இரண்டு இடமாற்றம், பின்னர் கேள்வி கணு நீக்க.
அடுத்த மிக பெரிய மதிப்பு 2 குழந்தைகள் தன்னை முடியாது என்று முனை அறிவிப்பு
அதன் இடது குழந்தை அடுத்த மிக பெரிய ஒரு நல்ல வேட்பாளர் என்று இருந்து.
எனவே, 2 குழந்தைகளுடன் ஒரு முனை நீக்குதல், 2 கணுக்களின் மாற்ற தொகை
பின்னர் அழிப்பதை 2 மேற்கூறிய விதிகளின் 1 கையாளப்படுகிறது.
உதாரணமாக, நாம் வேர் கணு, 13 நீக்க வேண்டும் என்று.
நாம் முதலில் நாம் கிளையில் அடுத்த பெரிய மதிப்பை கண்டறிய உள்ளது
இதில், இந்த வழக்கில், 21 ஆகும்.
நாம் 13 ஒரு இலை மற்றும் 21 மத்திய குழு முனை செய்து, 2 முனைகளில் பரிமாறிக்கொள்ளலாம்.
இப்போது நாம் வெறுமனே 13 நீக்க முடியும்.
>> முந்தைய மறைமுகமாக, சரியான பைனரி தேடல் மரம் செய்ய பல வழிகள் உள்ளன.
துரதிருஷ்டவசமாக நமக்கு, சில மற்றவர்களை விட மோசமாக உள்ளன.
நாம் ஒரு பைனரி தேடல் மரம் கட்ட போது எடுத்துக்காட்டாக, என்ன நடக்கும்
எண்கள் ஒரு வரிசையில் பட்டியலில் இருந்து?
அனைத்து எண்கள் தான் ஒவ்வொரு படியிலும் வலது சேர்க்கப்படும்.
நாம் ஒரு எண்ணை தேட வேண்டும் போது,
நாம் வேறு வழியில்லை ஆனால் தான் ஒவ்வொரு படியிலும் உரிமை இருக்கும்.
இந்த அனைத்து நேரியல் தேடல் விட முடியாது.
நாம் இங்கே மறைக்க மாட்டேன் எனினும், மிகவும் சிக்கலான, மற்ற உள்ளன
இந்த நடக்காது என்று உறுதி என்று தரவு கட்டமைப்புகள்.
எனினும், இந்த தவிர்க்க முடியும் என்று ஒரு எளிமையான விஷயம்
நான் தோராயமாக குலைப்பதை உள்ளீடு மதிப்புகளுக்கு.
இது சீரற்ற வாய்ப்பு மூலம் எண்களை ஒரு மாற்றி மாற்றி கலக்கப்பட்டு பட்டியலை வரிசையாக்கம் என்று சாத்தியமே இல்லை.
இந்த வழக்கு இருந்தால், கேசினோ நீண்ட வணிக தங்க முடியாது.
>> அங்கு நீங்கள் இது.
நீங்கள் இப்போது இரும தேடல் மற்றும் இரும தேடல் மரங்கள் பற்றி.
நான் பேட்ரிக் ஷ்சூமிட்டின் நான், இந்த CS50 உள்ளது.
[CS50.TV]
ஒரு தெளிவான வழி இருந்து பட்டியல் ஸ்கேன் செய்ய வேண்டும் ... [பீப்]
... உருப்படிகளின் எண்ணிக்கையை ... இங்கும்
[சிரிக்கிறார்]
... 234 ... augh ஒரு முனை பதிவு.
>> ஆஹா! என்று -