1 00:00:00,000 --> 00:00:08,532 >> [இசை கேட்கிறது] 2 00:00:08,532 --> 00:00:12,060 >> ZAMYLA சான்: நீங்கள் போகலாம் முதல் விஷயம் கண்டறிய பற்றி அறிவிப்பு என்று நாம் ஏற்கனவே 3 00:00:12,060 --> 00:00:13,450 குறியீடு எங்களுக்கு எழுதியுள்ளனர். 4 00:00:13,450 --> 00:00:15,160 இந்த விநியோக குறியீடு என்று அழைக்கப்படுகிறது. 5 00:00:15,160 --> 00:00:18,000 எனவே நாம் நமது சொந்த எழுத போவதில்லை இனி புதிதாக குறியீடு. 6 00:00:18,000 --> 00:00:22,800 மாறாக, நாம் காலிக் பூர்த்தி சில ஏற்கனவே குறியீடு. 7 00:00:22,800 --> 00:00:27,790 >> find.c திட்டம் எண்கள் கேட்கிறது வைக்கோல் நிரப்ப, தேடுகிறது 8 00:00:27,790 --> 00:00:32,189 பயனர் சமர்ப்பித்த ஊசியை வைக்கோல், அது மாதிரி அழைப்பு மற்றும் இந்த செய்கிறது 9 00:00:32,189 --> 00:00:35,590 தேடல், செயல்பாடுகளை வரையறுக்கப்பட்ட helpers.c உள்ள. 10 00:00:35,590 --> 00:00:37,670 எனவே find.c ஏற்கனவே எழுதப்பட்டுள்ளது. 11 00:00:37,670 --> 00:00:40,770 உங்கள் வேலை உதவியாளர்கள் எழுத இருக்கிறது. 12 00:00:40,770 --> 00:00:41,870 >> எனவே நாம் என்ன செய்து கொண்டிருக்கிறாய்? 13 00:00:41,870 --> 00:00:44,210 நாம் இரண்டு செயல்பாடுகளை செயல்படுத்தி வருகிறோம். 14 00:00:44,210 --> 00:00:49,030 உண்மை கொடுக்கிறது இது தேடல், என்றால் ஒரு மதிப்பு திரும்பி, வைக்கோல் காணப்படுகிறது 15 00:00:49,030 --> 00:00:51,370 தவறான மதிப்பு இருந்தால் இல்லை வைக்கோல். 16 00:00:51,370 --> 00:00:57,990 பின்னர் நாங்கள் வகையான செயல்படுத்தி வருகிறோம் இது வேல்யூஸ் வரிசை வகையான. 17 00:00:57,990 --> 00:00:59,960 >> எனவே தேடல் சமாளிக்க வேண்டும். 18 00:00:59,960 --> 00:01:04,560 தேடல் தற்போது நடைமுறைப்படுத்தப்படுகிறது நேரியல் தேடல், ஆனால் நீங்கள் நிறைய செய்ய முடியும் 19 00:01:04,560 --> 00:01:05,550 அந்த விட. 20 00:01:05,550 --> 00:01:09,910 நேரியல் தேடல் ஓ செயல்படுத்தப்படுகிறது N நேரம், இது மிகவும் மெதுவாக உள்ளது. 21 00:01:09,910 --> 00:01:13,850 என்றாலும், அது தேடலாம் அது கொடுக்கப்பட்ட எந்த பட்டியலில். 22 00:01:13,850 --> 00:01:20,130 உங்கள் வேலை பைனரி தேடல் செயல்படுத்த உள்ளது பதிவு n, O ரன் இது. 23 00:01:20,130 --> 00:01:21,130 அந்த அழகான வேகமாக தான். 24 00:01:21,130 --> 00:01:23,170 >> ஆனால் ஒரு நிபந்தனை இருக்கிறது. 25 00:01:23,170 --> 00:01:27,600 இரும தேடல் மட்டும் தேடலாம் முன் வரிசையில் பட்டியல்கள் மூலம். 26 00:01:27,600 --> 00:01:30,370 அது ஏன்? 27 00:01:30,370 --> 00:01:32,620 >> சரி இது ஒரு உதாரணம் பார்க்கலாம். 28 00:01:32,620 --> 00:01:36,280 மதிப்புகள் ஒரு வரிசை கொடுத்து, வைக்கோல், நாம் தேடும் போகிறாய் 29 00:01:36,280 --> 00:01:37,130 ஒரு ஊசியை. 30 00:01:37,130 --> 00:01:40,460 இந்த எடுத்துக்காட்டில், முழு மூன்று. 31 00:01:40,460 --> 00:01:44,130 பைனரி தேடல் வேலை என்று வழி இருக்கிறது என்று நாங்கள் மத்தியில் மதிப்பு ஒப்பிட்டு 32 00:01:44,130 --> 00:01:48,370 மிகவும் போன்ற ஊசி வரிசை, எப்படி நாங்கள் நடுத்தர ஒரு புத்தக திறந்து 33 00:01:48,370 --> 00:01:50,660 வாரம் பூஜ்யம் பக்கம். 34 00:01:50,660 --> 00:01:54,650 >> எனவே மத்திய மதிப்பு ஒப்பிட்டு ஊசி, நீங்கள் நிராகரிக்க முடியும் 35 00:01:54,650 --> 00:01:58,530 இடது அல்லது வரிசை சரி பாதி உங்கள் எல்லைக்கு இறுக்குவது மூலம். 36 00:01:58,530 --> 00:02:03,390 இந்த வழக்கில், மூன்று முதல், எங்கள் ஊசி, குறைவாக 10, நடுத்தர மதிப்பு, ஆகிறது 37 00:02:03,390 --> 00:02:05,990 வலது பிணைப்பு குறைக்க முடியும். 38 00:02:05,990 --> 00:02:08,400 ஆனால் உங்கள் எல்லைக்கு செய்ய முயற்சி முடிந்தவரை இறுக்கமான. 39 00:02:08,400 --> 00:02:11,630 நடுத்தர மதிப்பு ஊசி இல்லை என்றால், நீங்கள் தேவையில்லை என்று 40 00:02:11,630 --> 00:02:13,010 உங்கள் தேடல் அதை சேர்க்க. 41 00:02:13,010 --> 00:02:17,310 எனவே நீங்கள் சரியான கட்டப்படுகிறது இறுக்க முடியாது ஒரு சிறிய பிட் மேலும் தேடல் எல்லைக்கு, 42 00:02:17,310 --> 00:02:21,770 அதனால் மற்றும் முன்னும் பின்னுமாக வரை உங்கள் ஊசி கண்டுபிடிக்க. 43 00:02:21,770 --> 00:02:23,480 >> அதனால் என்ன சூடோகுறியீடு இருக்க வேண்டும்? 44 00:02:23,480 --> 00:02:28,420 நாம் இன்னும் வழியாக தேடும் நன்கு பட்டியலில் இன்னும் உறுப்புகள் வேண்டும் 45 00:02:28,420 --> 00:02:33,690 பார்த்து, நாங்கள், பட்டியலில் மத்தியில் எடுக்கிறோம் மற்றும் அந்த நடுத்தர மதிப்பு ஒப்பிட்டு 46 00:02:33,690 --> 00:02:34,950 எங்கள் ஊசி. 47 00:02:34,950 --> 00:02:37,310 அவர்கள் சம என்றால் நாம் தான் ஆகிறது ஊசி கிடைத்தது மற்றும் நாம் 48 00:02:37,310 --> 00:02:38,990 உண்மை திரும்ப. 49 00:02:38,990 --> 00:02:42,870 >> இல்லையெனில், ஊசி குறைவாக இருந்தால் நடுத்தர மதிப்பு, பிறகு நாம் பொருள் 50 00:02:42,870 --> 00:02:47,280 வலது பாதி நிராகரிக்க, மற்றும் முடியும் வரிசை இடது பக்கத்தில் தேடல். 51 00:02:47,280 --> 00:02:51,090 இல்லையெனில், நாங்கள் தேட வேண்டும் வரிசை வலது பக்க. 52 00:02:51,090 --> 00:02:54,410 இறுதியில், நீங்கள் எந்த இல்லை மேலும் தேட இடது கூறுகள் ஆனால் நீங்கள் 53 00:02:54,410 --> 00:02:58,050 நீங்கள், இன்னும் உங்கள் ஊசி இல்லை தவறான திரும்ப ஏனெனில் ஊசி 54 00:02:58,050 --> 00:03:01,890 நிச்சயமாக வைக்கோல் அல்ல. 55 00:03:01,890 --> 00:03:05,270 >> இந்த சூடோகுறியீடு பற்றி இப்போது ஒரு சுத்தமாகவும் விஷயம் இரும தேடல் இது இருக்க முடியும் என்று 56 00:03:05,270 --> 00:03:09,940 பங்கேற்பு ஒன்று என விளக்கம் அல்லது சுழல்நிலை செயல்படுத்த. 57 00:03:09,940 --> 00:03:13,810 நீங்கள் என்று நீங்கள் அதை சுழல்நிலை இருக்கும் தேடல் உள்ள தேடல் செயல்பாடு 58 00:03:13,810 --> 00:03:17,350 வரிசை அல்லது அரை செயற்படுகின்றன. 59 00:03:17,350 --> 00:03:21,030 நாம் ஒரு பிட் பின்னர் மறுநிகழ்வு மூடலாம் நிச்சயமாக, ஆனால் அது ஒரு என்று தெரிகிறது 60 00:03:21,030 --> 00:03:24,190 விருப்பத்தை நீங்கள் முயற்சி விரும்புகிறேன் என்றால். 61 00:03:24,190 --> 00:03:26,030 >> இப்போது வரிசையாக்கம் பார்க்கிறேன். 62 00:03:26,030 --> 00:03:30,750 அப்படி ஒரு வரிசை மற்றும் முழு எடுக்கிறது வரிசை அளவு இது N,. 63 00:03:30,750 --> 00:03:34,030 இப்போது பல்வேறு வகைகள் உள்ளன வகையான, மற்றும் சில பார்க்க முடியும் 64 00:03:34,030 --> 00:03:36,370 செய்முறைகள் மற்றும் விளக்கங்களை குறும்படங்கள். 65 00:03:36,370 --> 00:03:39,580 பதிலாக வகை எங்கள் வகையான செயல்பாடு வெற்றிடத்தை உள்ளது. 66 00:03:39,580 --> 00:03:43,580 அதனால் நாம் போவதில்லை என்று அர்த்தம் அப்படி எந்த வரிசை திரும்ப. 67 00:03:43,580 --> 00:03:48,140 நாம் உண்மையில் மிகவும் மாற்ற போகிறோம் எங்களுக்கு ஒரு நிறைவேற்றப்பட்டது என்று வரிசை. 68 00:03:48,140 --> 00:03:52,290 >> வரிசைகள் இருக்கும், ஏனெனில் அது சாத்தியம் நாம் இப்போது சி குறிப்பு கடந்து 69 00:03:52,290 --> 00:03:55,290 பின்னர் இது பற்றி மேலும் பார்க்க, ஆனால் கடந்து இடையே அடிப்படை வேறுபாடு 70 00:03:55,290 --> 00:03:59,340 ஒரு முழு மற்றும் கடந்து போன்ற ஏதாவது ஒரு வரிசையில், என்று போது நீங்கள் 71 00:03:59,340 --> 00:04:03,490 ஒரு முழு கடந்து, சி போகிறது என்று முழு ஒரு பிரதியை செய்ய அனுப்ப 72 00:04:03,490 --> 00:04:04,450 செயல்பாடு அதை. 73 00:04:04,450 --> 00:04:08,530 அசல் மாறி மாற மாட்டோம் செயல்பாடு முடிந்தவுடன். 74 00:04:08,530 --> 00:04:12,480 ஒரு வரிசைக்கு கொண்டு, மறுபுறம், அது தான் ஒரு பிரதியை செய்ய போகிறது, மற்றும் நீங்கள் 75 00:04:12,480 --> 00:04:17,910 உண்மையில் திருத்த வேண்டும் மிகவும் வரிசை தன்னை. 76 00:04:17,910 --> 00:04:21,269 >> எனவே வகையான ஒரு வகை உள்ளது தேர்வு வகையான. 77 00:04:21,269 --> 00:04:24,750 தேர்வு வகையான தொடங்கி வேலை நீங்கள் கூறு பின்னர் தொடக்கத்தில், 78 00:04:24,750 --> 00:04:26,820 மேல் மற்றும் சிறிய உறுப்பு கண்டுபிடிக்க. 79 00:04:26,820 --> 00:04:30,710 பின்னர் நீங்கள் மாற்ற என்று சிறிய முதல் ஒரு உறுப்பு. 80 00:04:30,710 --> 00:04:34,360 பிறகு இரண்டாவது உறுப்பு செல்ல , அடுத்த சிறிய கண்டுபிடிக்க 81 00:04:34,360 --> 00:04:38,320 பின்னர் உறுப்பு, மற்றும் இடமாற்றம் என்று வரிசையில் இரண்டாவது உறுப்பு ஏனெனில் 82 00:04:38,320 --> 00:04:41,100 முதல் உறுப்பு ஏற்கனவே பிரிக்கப்பட்டுள்ளது. 83 00:04:41,100 --> 00:04:45,370 அதனால் நீங்கள் ஒவ்வொரு தொடரும் சிறிய அடையாளம் உறுப்பு 84 00:04:45,370 --> 00:04:47,690 மதிப்பு மற்றும் அதை மாற்றியமைக்கப்படுகிறது. 85 00:04:47,690 --> 00:04:53,460 >> நான் 0, முதல் உறுப்பு சமம் பொறுத்தவரை N கழித்து 1, நீங்கள் ஒப்பிட்டு போகிறோம் 86 00:04:53,460 --> 00:04:57,820 ஒவ்வொரு அடுத்த பிறகு மதிப்பு மற்றும் கண்டுபிடிக்க குறைந்தபட்ச மதிப்பு குறியீட்டு. 87 00:04:57,820 --> 00:05:02,520 நீங்கள் குறைந்தபட்ச மதிப்பு குறியீட்டு கண்டறிய, நீங்கள் வரிசை மதிப்பு இடமாற்றம் செய்யலாம் 88 00:05:02,520 --> 00:05:05,930 குறைந்தபட்ச மற்றும் வரிசை முதலாம் 89 00:05:05,930 --> 00:05:09,760 >> வரிசையில் இன்னொரு வகை என்று நீங்கள் செயல்படுத்த குமிழி வரிசையாக்கம் ஆகிறது. 90 00:05:09,760 --> 00:05:14,380 பட்டியல் எனவே குமிழி வரிசையாக்கம் செயல்களை அருகில் உறுப்புகள் மற்றும் ஒப்பிட்டு 91 00:05:14,380 --> 00:05:17,720 உறுப்புகள் மாற்றம் என்று தவறான முறையில் இருக்கின்றன. 92 00:05:17,720 --> 00:05:22,380 இந்த வழியில், பெரிய உறுப்பு குமிழி முற்றுப்புள்ளி வைக்குமா. 93 00:05:22,380 --> 00:05:28,070 பட்டியல் முறை இன்னும் வரிசைப்படுத்தப்பட்ட கூறுகளை பரிமாற்றம் செய்யப்பட்டுள்ளது. 94 00:05:28,070 --> 00:05:31,920 >> எனவே அந்த மாதிரியான இரண்டு உதாரணங்கள் இருக்கின்றன நீங்கள் செயல்படுத்த முடியாது என்று வழிமுறைகளை 95 00:05:31,920 --> 00:05:33,230 கண்டறிய திட்டம். 96 00:05:33,230 --> 00:05:37,350 நீங்கள் அப்படி முடிக்க, மற்றும் நீங்கள் ஒருமுறை தேடல் செய்ய, நீங்கள் முடிந்துவிட்டது. 97 00:05:37,350 --> 00:05:39,720 என் பெயர் Zamyla உள்ளது, மற்றும் இந்த CS50 உள்ளது. 98 00:05:39,720 --> 00:05:46,987 >> [இசை கேட்கிறது]