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 કાર્યક્રમ નંબરો માટે પૂછે છે આ haystack ભરવા માટે, શોધે છે 8 00:00:27,790 --> 00:00:32,189 વપરાશકર્તા સબમિટ સોય માટે haystack, અને તે પ્રકારના ફોન અને દ્વારા કરે છે 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 સાચું આપે જે શોધો, તો નીચેની પરત, આ haystack જોવા મળે છે 15 00:00:49,030 --> 00:00:51,370 ખોટા કિંમત છે નથી આ haystack માં. 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 ના સમય કંઈપણ સ્કોર છે જે. 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 કિંમતો પણ દર્શાવે છે આપવામાં આવે છે, આ haystack, અમે શોધી કરી રહ્યા છીએ 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 ચોક્કસપણે આ haystack નથી. 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 ઉપર યાદી તેથી બબલ સૉર્ટ iterates અડીને તત્વો અને સરખામણી 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 >> [સંગીત વગાડવાનો]