1 00:00:00,000 --> 00:00:10,900 2 00:00:10,900 --> 00:00:15,860 >> 1 વક્તા: બધા હક છે, તેથી આ છે CS50 આ અઠવાડિયે પાંચ અંત છે. 3 00:00:15,860 --> 00:00:19,220 અને તે છેલ્લા સમય યાદ અમે શરૂ પારખુ માહિતી પર જોઈ 4 00:00:19,220 --> 00:00:22,310 ઉકેલવા માટે શરૂ માળખાં દાખલ કરવા માટે શરૂ સમસ્યાઓ, 5 00:00:22,310 --> 00:00:25,640 નવી સમસ્યાઓ છે, પરંતુ આ માટે કી threading ના સૉર્ટ હતું કે અમે 6 00:00:25,640 --> 00:00:27,940 નોડ માંથી નોડ કરવા માટે શરૂ કરી હતી. 7 00:00:27,940 --> 00:00:30,085 તેથી અલબત્ત આ છે એક એકલા કડી થયેલ યાદી. 8 00:00:30,085 --> 00:00:31,960 ત્યાં એકલા, કડી હું માત્ર એક છે અર્થ 9 00:00:31,960 --> 00:00:33,380 તે ગાંઠો દરેક વચ્ચે થ્રેડ. 10 00:00:33,380 --> 00:00:35,890 તમે પારખુ કરી શકો છો બહાર વળે સમયમાં બમણું કડી થયેલ યાદીઓ જેવી વસ્તુઓ 11 00:00:35,890 --> 00:00:38,470 તમે એક તીર છે જેમાં બંને દિશામાં જઈને જે 12 00:00:38,470 --> 00:00:40,320 ચોક્કસ કાર્યક્ષમતા સાથે મદદ કરી શકે છે. 13 00:00:40,320 --> 00:00:42,000 પરંતુ આ સમસ્યા હલ? 14 00:00:42,000 --> 00:00:43,500 આ શું સમસ્યા ઉકેલવા? 15 00:00:43,500 --> 00:00:46,620 અમે સોમવાર પર શા માટે કાળજી હતી? 16 00:00:46,620 --> 00:00:49,820 શા માટે, સિદ્ધાંત માં, અમે સોમવાર પર કાળજી હતી? 17 00:00:49,820 --> 00:00:50,630 તે શું કરે છે? 18 00:00:50,630 --> 00:00:51,950 >> પ્રેક્ષક: અમે ગતિશીલ તે માપ બદલો કરી શકો છો. 19 00:00:51,950 --> 00:00:53,740 >> 1 વક્તા: ઠીક છે, અમે કરી શકો છો જેથી ગતિશીલ માપ બદલો. 20 00:00:53,740 --> 00:00:54,710 વેલ તમે બંને થાય છે. 21 00:00:54,710 --> 00:00:57,560 તેથી જો તમે ગતિશીલ આ માપ બદલો કરી શકો છો માહિતી માળખું, ઝાકઝમાળ, જ્યારે 22 00:00:57,560 --> 00:01:00,760 રિકોલ, તમે જાણતા હોય છે પ્રાયોરી કેટલી જગ્યા તમે કરવા માંગો છો 23 00:01:00,760 --> 00:01:03,870 અને તમે થોડી વધુ જરૂર હોય તો જગ્યા, તમે નસીબ બહાર પ્રકારની છો. 24 00:01:03,870 --> 00:01:05,560 તમે એક સંપૂર્ણ નવો એરે બનાવી છે. 25 00:01:05,560 --> 00:01:07,893 તમે બધા ખસેડવા માટે તમારા અન્ય એક માંથી માહિતી 26 00:01:07,893 --> 00:01:10,600 આખરે જૂના એરે મુક્ત તમે કરી શકો છો, અને પછી આગળ વધો છો તો. 27 00:01:10,600 --> 00:01:13,891 જે માત્ર ખૂબ જ ખર્ચાળ લાગે છે અને ખૂબ જ બિનકાર્યક્ષમ છે, અને ખરેખર તે હોઈ શકે છે. 28 00:01:13,891 --> 00:01:14,890 પરંતુ આ બધા સારા નથી. 29 00:01:14,890 --> 00:01:18,180 અમે ભાવ ચૂકવવા, એક શું હતું વધુ સ્પષ્ટ ભાવ અમે 30 00:01:18,180 --> 00:01:20,550 એક કડી થયેલ યાદી ઉપયોગ કરીને ચૂકવણી? 31 00:01:20,550 --> 00:01:22,825 >> પ્રેક્ષક: અમે ઉપયોગ કરે છે દરેક એક માટે ડબલ જગ્યા. 32 00:01:22,825 --> 00:01:25,200 1 વક્તા: અરે વાહ, જેથી અમે જરૂર ઓછામાં ઓછા બે વાર જ જગ્યા છે. 33 00:01:25,200 --> 00:01:27,700 હકીકતમાં, હું સમજાયું આ ચિત્ર માતાનો પણ થોડો ભ્રામક, 34 00:01:27,700 --> 00:01:32,200 કારણ કે આધુનિક ઘણો CS50 IDE પર એન્જીનિયરિંગ, નિર્દેશક અથવા સરનામું 35 00:01:32,200 --> 00:01:33,700 હકીકત ચાર બાઇટ્સ નથી. 36 00:01:33,700 --> 00:01:36,090 તે ઘણી વાર આ છે દિવસ આઠ બાઇટ્સ, જે 37 00:01:36,090 --> 00:01:38,530 નીચે એનો અર્થ એ થાય કે મોટા ભાગના વાસ્તવમાં ત્યાં લંબચોરસ 38 00:01:38,530 --> 00:01:40,900 બે વખત તરીકે પ્રકારની છે હું દોરવામાં કર્યું છે શું મોટા, 39 00:01:40,900 --> 00:01:44,409 જે તમે ત્રણ વખત ઉપયોગ કરી રહ્યાં છો એનો અર્થ એ થાય અમે તો હોય શકે તેટલી જગ્યા. 40 00:01:44,409 --> 00:01:46,700 હવે એ જ સમયે, અમે છો હજુ બાઇટ્સ વાત, અધિકાર? 41 00:01:46,700 --> 00:01:49,140 અમે જરૂરી વાત કરી રહ્યા છીએ મેગાબાઇટ્સ અથવા ગીગાબાઇટ્સ, 42 00:01:49,140 --> 00:01:51,000 આ માહિતી જ્યાં સુધી માળખાં મોટા મળે છે. 43 00:01:51,000 --> 00:01:54,510 >> અને તેથી આજે આપણે ધ્યાનમાં શરૂ અમે માહિતી અન્વેષણ શકે છે કેવી રીતે 44 00:01:54,510 --> 00:01:57,310 વધુ અસરકારક રીતે જો હકીકત એ છે કે ડેટા મોટી નહીં. 45 00:01:57,310 --> 00:02:00,360 પરંતુ canonicalize કરવાનો પ્રયાસ કરીએ પ્રથમ કામગીરી 46 00:02:00,360 --> 00:02:02,460 તમે આ પર કરી શકો છો કે માહિતી માળખાં પ્રકારના. 47 00:02:02,460 --> 00:02:04,790 એક કડી થયેલ જેવી તેથી કંઈક યાદી સામાન્ય રીતે આધાર આપે છે 48 00:02:04,790 --> 00:02:07,514 કામગીરી કાઢી ગમે છે, દાખલ કરો, અને શોધો. 49 00:02:07,514 --> 00:02:08,639 અને હું કે શું અર્થ છે? 50 00:02:08,639 --> 00:02:11,222 કે જે હમણાં જ તે સામાન્ય રીતે અર્થ એ થાય લોકો કડી થયેલ યાદી વાપરી રહ્યા હોય, 51 00:02:11,222 --> 00:02:14,287 તેઓ અથવા અન્ય કોઈ વ્યક્તિ અમલમાં છે કાઢી નાંખો, સામેલ જેવા કાર્યો, 52 00:02:14,287 --> 00:02:16,120 અને શોધ, તમે કરી શકો છો જેથી ખરેખર કંઈક કરવું 53 00:02:16,120 --> 00:02:18,030 આ માહિતી માળખું ઉપયોગી છે. 54 00:02:18,030 --> 00:02:20,760 તેથી આપણે એક ઝડપી નજર અમે અમલ કરી શકે છે કેવી રીતે 55 00:02:20,760 --> 00:02:24,530 એક કડી થયેલ યાદી માટે અમુક કોડ તરીકે અનુસરે છે. 56 00:02:24,530 --> 00:02:27,885 >> તેથી આ માત્ર અમુક સી કોડ છે, પણ એક સંપૂર્ણ કાર્યક્રમ 57 00:02:27,885 --> 00:02:29,260 હું ખરેખર ઝડપથી અપ ચાબૂક મારી છે. 58 00:02:29,260 --> 00:02:32,300 તે વિતરણ ઓનલાઇન નથી કોડ છે, તે વાસ્તવમાં ચાલી નહીં કારણ કે. 59 00:02:32,300 --> 00:02:33,790 પરંતુ હું માત્ર છે નોટિસ એક ટિપ્પણી હતું કે સાથે, 60 00:02:33,790 --> 00:02:36,130 કોઈ ટપકું ટપકું, કંઈક છે ત્યાં, ત્યાં કંઈક ડોટ ડોટ ડોટ. 61 00:02:36,130 --> 00:02:38,410 અને આપણે માત્ર જોવા દો રસદાર ભાગો શું છે. 62 00:02:38,410 --> 00:02:40,790 તો રેખા ત્રણ, હવે આ યાદ છે કે 63 00:02:40,790 --> 00:02:45,960 અમે છેલ્લા નોડ જાહેર દરખાસ્ત સમય, તે લંબચોરસ વસ્તુઓ એક છે. 64 00:02:45,960 --> 00:02:48,790 તે અમે n એ કહી શકશો કે પૂર્ણાંક છે પરંતુ અમે કંઈપણ કૉલ કરી શકે છે, 65 00:02:48,790 --> 00:02:51,920 અને પછી એક સ્ટ્રક્ટ નોડ સ્ટાર આગામી કહેવાય છે. 66 00:02:51,920 --> 00:02:55,520 અને માત્ર કે બીજા સ્પષ્ટ થઈ રેખા, રેખા છ પર, કે શું છે? 67 00:02:55,520 --> 00:02:57,930 તે અમારા માટે શું કરવાનું છે? 68 00:02:57,930 --> 00:03:01,044 તે ચોક્કસપણે વધુ લાગે છે, કારણ અમારા સામાન્ય ચલો કરતાં ભેદી. 69 00:03:01,044 --> 00:03:02,740 >> પ્રેક્ષક: તે એક પર ખસેડો બનાવે છે. 70 00:03:02,740 --> 00:03:04,650 >> 1 વક્તા: તે એક પર ખસેડો બનાવે છે. 71 00:03:04,650 --> 00:03:08,580 અને, વધુ ચોક્કસ કરી શકાય કરવા તે સરનામું સંગ્રહ કરશે 72 00:03:08,580 --> 00:03:11,582 થઈ ગયું છે કે નોડ અર્થનિર્ધારણ તે માટે આગામી, અધિકાર? 73 00:03:11,582 --> 00:03:13,540 તેથી તે ચાલી રહ્યું છે જરૂરી કંઈપણ ખસેડો. 74 00:03:13,540 --> 00:03:15,290 તે માત્ર રહ્યું છે છે, કે જે નીચેની સ્ટોર 75 00:03:15,290 --> 00:03:17,170 સરનામું હોઈ ચાલે કેટલાક અન્ય નોડ, 76 00:03:17,170 --> 00:03:20,810 અમે સ્ટ્રક્ટ જણાવ્યું હતું કે કર્યું અને તે શા માટે છે નોડ તારો, તારો denoting 77 00:03:20,810 --> 00:03:22,370 એક નિર્દેશક અથવા સરનામું. 78 00:03:22,370 --> 00:03:26,390 ઠીક છે, તેથી હવે તમે અમે ધારે છે કે જો અમને ઉપલબ્ધ આ n એ, અને ચાલો 79 00:03:26,390 --> 00:03:29,490 કોઈના છે કે ધારે પૂર્ણાંકો એક સમગ્ર ટોળું દાખલ 80 00:03:29,490 --> 00:03:30,400 એક કડી થયેલ યાદી માં. 81 00:03:30,400 --> 00:03:35,640 અને તે સાથે લિંક યાદી છે અમુક બિંદુએ દ્વારા નિર્દેશ 82 00:03:35,640 --> 00:03:39,040 છે કે ચલ કહેવાય યાદી એક પરિમાણ તરીકે અહીં પસાર કર્યો હતો, 83 00:03:39,040 --> 00:03:43,120 હું કેવી રીતે રેખા વિશે જવા નથી 14 શોધ અમલીકરણ? 84 00:03:43,120 --> 00:03:45,990 અન્ય શબ્દોમાં, હું અમલીકરણ છું તો જેની હેતુ જીવનમાં કાર્ય 85 00:03:45,990 --> 00:03:48,889 પછી પૂર્ણાંક અને લેવા માટે છે એક કડી થયેલ યાદી શરૂઆત છે, 86 00:03:48,889 --> 00:03:50,430 કે યાદીની લિંક કરવા માટે એક નિર્દેશક છે. 87 00:03:50,430 --> 00:03:52,992 પ્રથમ જેમ, હું ડેવિડ જે વિચારો અમારા સ્વયંસેવક સોમવારે હતી 88 00:03:52,992 --> 00:03:54,700 તેમણે ઇશારો કરવામાં આવ્યો હતો સમગ્ર કડી થયેલ યાદી, 89 00:03:54,700 --> 00:03:57,820 અમે પસાર કરી રહ્યાં છે, તેમ છતાં, કે છે ડેવિડ અહીં અમારા દલીલ તરીકે. 90 00:03:57,820 --> 00:03:59,990 કેવી રીતે અમે આ યાદીમાં સરકાઉ વિશે જાઓ છો? 91 00:03:59,990 --> 00:04:04,640 વેલ, તે તારણ છે કે, તેમ છતાં પોઇન્ટર અમને હવે પ્રમાણમાં નવા છે 92 00:04:04,640 --> 00:04:07,010 અમે પ્રમાણમાં આ કરી શકો છો તેમના મોઢા પર. 93 00:04:07,010 --> 00:04:09,500 >> હું આગળ જવા માટે જઇ રહ્યો છું અને કામચલાઉ ચલ જાહેર કે 94 00:04:09,500 --> 00:04:12,364 સંમેલન દ્વારા માત્ર રહ્યું છે માટે, ptr નિર્દેશક તરીકે ઓળખાય છે, અથવા 95 00:04:12,364 --> 00:04:14,030 પરંતુ તમે ઇચ્છો કંઈપણ કહી શકે છે. 96 00:04:14,030 --> 00:04:16,470 અને હું પ્રારંભ કરવા જઈ રહ્યો છું તે યાદી શરૂઆત. 97 00:04:16,470 --> 00:04:20,050 તેથી જો તમે આ પ્રકારની વિચાર કરી શકો છો મને શિક્ષક તરીકે બીજા દિવસે, 98 00:04:20,050 --> 00:04:23,580 પ્રકારની કોઈને પોઇન્ટ સ્વયંસેવકો અમારા મનુષ્યો વચ્ચે. 99 00:04:23,580 --> 00:04:26,470 તેથી હું છે કે કામચલાઉ ચલ છું માત્ર એક જ વસ્તુ તરફ સંકેત 100 00:04:26,470 --> 00:04:31,390 અમારા સાંયોગિક નામ આપવામાં આવ્યું છે કે સ્વયંસેવક ડેવિડ પણ બહાર તરફ પોઇન્ટ કરવામાં આવી હતી. 101 00:04:31,390 --> 00:04:35,440 હવે નિર્દેશક છે, જ્યારે નલ નથી, કારણ કે રિકોલ 102 00:04:35,440 --> 00:04:40,350 નલ કેટલાક ખાસ સંત્રી કિંમત છે આ યાદીમાં ઓવરને demarcates 103 00:04:40,350 --> 00:04:44,280 હું નિર્દેશ કરતી રહ્યો નથી તેથી જ્યારે અમારા છેલ્લા સ્વયંસેવક જેવી જમીન 104 00:04:44,280 --> 00:04:47,190 હતી, ચાલો આગળ જવા દો અને નીચે પ્રમાણે કરો. 105 00:04:47,190 --> 00:04:51,820 નિર્દેશક અને હવે જો હું પ્રકારની માંગો છો અમે વિદ્યાર્થી સાથે શું કર્યું 106 00:04:51,820 --> 00:04:57,410 માળખું નિર્દેશક ટપકું આગામી તો બરાબર નિર્દેશક ટપકું N, બરાબર બદલે તો 107 00:04:57,410 --> 00:05:02,290 ચલ n એ, બરાબર માં પસાર કરવામાં આવી છે કે દલીલ, 108 00:05:02,290 --> 00:05:05,370 પછી હું આગળ જાઓ કરવા માંગો છો અને સાચું આવો કહે છે. 109 00:05:05,370 --> 00:05:11,020 હું અંદર સંખ્યા n મળી છે મારા યાદીની લિંક એક નોડ. 110 00:05:11,020 --> 00:05:13,500 પરંતુ કોઈ લાંબા સમય સુધી આ સંદર્ભમાં કામ કરે છે, 111 00:05:13,500 --> 00:05:17,260 નિર્દેશક, ptr છે, કારણ કે ખરેખર એક નિર્દેશક, એક સરનામું, 112 00:05:17,260 --> 00:05:20,632 અમે ખરેખર અદ્ભૂત કરી શકો છો વાક્યરચના છેલ્લે એક ટુકડો ઉપયોગ 113 00:05:20,632 --> 00:05:22,590 બનાવે છે કે જે પ્રકારની સાહજિક અર્થમાં અને ખરેખર 114 00:05:22,590 --> 00:05:27,870 ના જાઓ, જેનો અર્થ છે અહીં એક તીર ઉપયોગ ત્યાં પૂર્ણાંક છે કે સરનામું. 115 00:05:27,870 --> 00:05:30,160 તેથી તે ખૂબ જ સમાન છે કોઈ ઓપરેટર ભાવના, 116 00:05:30,160 --> 00:05:33,860 પરંતુ નિર્દેશક નિર્દેશક નથી, કારણ કે અને કોઈ વાસ્તવિક સ્ટ્રક્ટ પોતે, 117 00:05:33,860 --> 00:05:35,380 અમે માત્ર તીર ઉપયોગ કરે છે. 118 00:05:35,380 --> 00:05:40,620 >> તેથી જો વર્તમાન નોડ કે હું કામચલાઉ ચલ, નિર્દેશ કરતી છું 119 00:05:40,620 --> 00:05:43,060 એન, હું શું કરવા માંગો છો નથી? 120 00:05:43,060 --> 00:05:45,910 ઠીક છે, મારા માનવ સ્વયંસેવકો સાથે અમે બીજા દિવસે અહીં હતું કે, 121 00:05:45,910 --> 00:05:49,710 મારી પ્રથમ માનવ એક હું ન હોય તો માંગો છો, અને કદાચ બીજી માનવ નથી 122 00:05:49,710 --> 00:05:52,660 હું માંગો છો તે એક છે, અને ત્રીજા, હું ખસેડવાની શારીરિક રાખવા જરૂર છે. 123 00:05:52,660 --> 00:05:54,690 જેમ હું કેવી રીતે યાદી મારફતે પગલું છે? 124 00:05:54,690 --> 00:05:57,470 અમે એક એરે હતી, ત્યારે તમે માત્ર હું વત્તા વત્તા જેવી હતી. 125 00:05:57,470 --> 00:06:03,660 પરંતુ આ કિસ્સામાં, તે પૂરતા આગળ, નિર્દેશક, નહીં, નિર્દેશક નથી. 126 00:06:03,660 --> 00:06:07,580 બીજા શબ્દોમાં કહીએ તો, આગામી ક્ષેત્ર ડાબી હાથ બધા જેવા છે 127 00:06:07,580 --> 00:06:10,880 સોમવારે અમારા માનવ સ્વયંસેવકો કેટલાક અન્ય નોડ પર નિર્દેશ ઉપયોગ કરી રહ્યા હતા. 128 00:06:10,880 --> 00:06:12,890 તે તેમના આગામી પડોશીઓ હતા. 129 00:06:12,890 --> 00:06:17,060 >> હું આ યાદી મારફતે પગલું કરવા માંગો છો તેથી જો, હું માત્ર હવે હું શું વત્તા વત્તા કરી શકો છો 130 00:06:17,060 --> 00:06:20,120 હું બદલે કહે છે હું નિર્દેશક, રહ્યું છે 131 00:06:20,120 --> 00:06:24,650 આગામી ક્ષેત્ર ગમે સમાન, આગામી ક્ષેત્ર, આગામી ક્ષેત્ર છે 132 00:06:24,650 --> 00:06:28,350 તે છોડી હાથ નીચેની બધી અમે સ્ટેજ પોઇન્ટ પર હતું કે 133 00:06:28,350 --> 00:06:30,000 કેટલીક અનુગામી કિંમતો છે. 134 00:06:30,000 --> 00:06:32,590 અને હું મારફતે વિચાર જો તે સમગ્ર પુનરાવૃત્તિ, 135 00:06:32,590 --> 00:06:39,330 અને છેલ્લે, હું નથી કર્યા નલ હિટ મળી N હજુ સુધી, હું હમણાં જ ખોટા આવો. 136 00:06:39,330 --> 00:06:44,100 તેથી ફરી, અમે અહીં કરી રહ્યા છીએ કે જે બધા, એક ક્ષણ પહેલા ચિત્ર મુજબ 137 00:06:44,100 --> 00:06:47,840 આ તરફ સંકેત દ્વારા શરૂ થાય છે કદાચ યાદી શરૂઆત. 138 00:06:47,840 --> 00:06:50,970 અને પછી હું ચકાસવા માટે, કિંમત છે હું નવ બરાબર શોધી રહ્યો છું? 139 00:06:50,970 --> 00:06:52,650 તેથી, જો હું સાચું આવો અને હું કરી રહ્યો છું. 140 00:06:52,650 --> 00:06:56,450 જો નહિં, તો હું મારા હાથ અપડેટ ઉર્ફ નિર્દેશક, નિર્દેશ 141 00:06:56,450 --> 00:06:59,540 આગામી તીર પાંચ આંકડાના US સ્થાન, અને પછી આગામી તીર પાંચ આંકડાના US સ્થાન, 142 00:06:59,540 --> 00:07:00,480 અને આગળ. 143 00:07:00,480 --> 00:07:03,770 હું માત્ર આ એરે મારફતે વૉકિંગ છું. 144 00:07:03,770 --> 00:07:06,010 >> તેથી ફરી, જે ધ્યાન આપતા? 145 00:07:06,010 --> 00:07:07,861 જેમ આ માટે એક ઘટક કયો છે? 146 00:07:07,861 --> 00:07:10,360 વેલ, અમે રજૂઆત કરી હતી યાદ સ્ટેક ની કલ્પના, જે 147 00:07:10,360 --> 00:07:15,400 તે છે, કારણ કે એક અમૂર્ત ડેટા ત્યાં લખો નથી એક સી વસ્તુ છે, તે એક CS50 વસ્તુ નથી, 148 00:07:15,400 --> 00:07:19,430 તે એક અમૂર્ત વિચાર, આ વિચાર છે એક બીજા ઉપર વસ્તુઓ સ્ટેકીંગ 149 00:07:19,430 --> 00:07:21,820 કે અમલ કરી શકાય છે અલગ અલગ રીતે જુમખું. 150 00:07:21,820 --> 00:07:25,600 અને અમે સૂચિત એક માર્ગ સાથે હતી ઝાકઝમાળ, અથવા એક કડી થયેલ યાદી છે. 151 00:07:25,600 --> 00:07:29,570 અને તે છે, કે જે પ્રમાણભૂત બહાર વળે સ્ટેક ઓછામાં ઓછા બે ઓપરેશન આધાર આપે છે. 152 00:07:29,570 --> 00:07:32,320 અને Buzz શબ્દો, દબાણ છે સ્ટેક પર કંઈક દબાણ, 153 00:07:32,320 --> 00:07:34,770 આ એક નવા ટ્રે જેવા ડાઇનિંગ હોલ, અથવા પોપ, 154 00:07:34,770 --> 00:07:39,000 જે સર્વોચ્ચ દૂર કરવા એનો અર્થ એ થાય ડાઇનિંગ સ્ટેક માંથી ટ્રે 155 00:07:39,000 --> 00:07:41,500 હોલ, અને પછી કદાચ કેટલાક અન્ય કામગીરી તેમજ. 156 00:07:41,500 --> 00:07:45,770 તેથી અમે કેવી રીતે માળખું વ્યાખ્યાયિત કરી શકે છે હવે અમે સ્ટેક કૉલ કરી રહ્યાં છો છે? 157 00:07:45,770 --> 00:07:50,020 >> વેલ, અમે જરૂરી બધા છે હું કહી સી અમારા નિકાલ પર વાક્યરચના, 158 00:07:50,020 --> 00:07:53,830 મને એક પ્રકારની વ્યાખ્યા આપી એક સ્ટેક અંદર એક સ્ટ્રક્ટ, 159 00:07:53,830 --> 00:07:58,030 હું, એક એરે છે કહેવું જાઉં છું સંપૂર્ણ ક્રમાંકો સમૂહ અને પછી માપ. 160 00:07:58,030 --> 00:08:00,930 તેથી અન્ય શબ્દોમાં, હું માંગો છો, તો કોડ આ અમલ કરવા માટે, 161 00:08:00,930 --> 00:08:03,830 મને જાઓ અને માત્ર પ્રકારની દો આ શું કહે છે દોરે છે. 162 00:08:03,830 --> 00:08:06,317 આ કહેતા છે કે જેથી, મને આપી ઝાકઝમાળ મળ્યું છે કે માળખું, 163 00:08:06,317 --> 00:08:09,400 અને હું, ક્ષમતા શું છે તે ખબર નથી તે હું કર્યું કે દેખીતી રીતે કેટલાક સતત છે 164 00:08:09,400 --> 00:08:10,858 અન્યત્ર વ્યાખ્યાયિત, અને તે દંડ છે. 165 00:08:10,858 --> 00:08:15,260 પરંતુ, તે માત્ર એક ધારી બે, ત્રણ, ચાર, પાંચ. 166 00:08:15,260 --> 00:08:16,700 તેથી ક્ષમતા 5 છે. 167 00:08:16,700 --> 00:08:21,730 ની અંદર આ તત્વ મારા માળખું નંબરો કહેવામાં આવશે. 168 00:08:21,730 --> 00:08:24,020 અને પછી હું એક જરૂર અન્ય ચલ દેખીતી રીતે 169 00:08:24,020 --> 00:08:27,814 શરૂઆતમાં હું જાઉં છું કહેવાય કદ શૂન્ય આરંભ છે નિયત છે. 170 00:08:27,814 --> 00:08:29,730 કંઇ હોય તો સ્ટેક, કદ, શૂન્ય છે 171 00:08:29,730 --> 00:08:31,420 અને તે સંખ્યામાં કચરો કિંમતો છે. 172 00:08:31,420 --> 00:08:33,450 હું હજુ સુધી ત્યાં શું કોઈ વિચાર છે. 173 00:08:33,450 --> 00:08:36,059 >> હું દબાણ કરવા માંગો છો તેથી જો સ્ટેક પર કંઈક 174 00:08:36,059 --> 00:08:40,780 હું કાર્ય દબાણ કૉલ ધારી, અને હું નંબર 50, જેમ કે 50 દબાણ કહે છે 175 00:08:40,780 --> 00:08:44,090 જ્યાં તમે પ્રસ્તાવ થશે હું આ એરે માં તે ડ્રો? 176 00:08:44,090 --> 00:08:47,124 પાંચ અલગ અલગ શક્ય જવાબો છે. 177 00:08:47,124 --> 00:08:48,790 જ્યાં તમે નંબર 50 દબાણ કરવા માંગો છો? 178 00:08:48,790 --> 00:08:51,899 અહીં ધ્યેય તો, ફરી, કોલ કાર્ય દબાણ, એક દલીલ પાસ 179 00:08:51,899 --> 00:08:52,940 50, હું તે જ્યાં મૂકી શકું? 180 00:08:52,940 --> 00:08:55,680 181 00:08:55,680 --> 00:08:59,052 પાંચ possible-- 20% તક ના યોગ્ય રીતે અનુમાન લગાવવા. 182 00:08:59,052 --> 00:08:59,896 હા? 183 00:08:59,896 --> 00:09:00,740 >> પ્રેક્ષક: ફાર અધિકાર. 184 00:09:00,740 --> 00:09:01,990 >> 1 વક્તા: ફાર અધિકાર. 185 00:09:01,990 --> 00:09:08,359 25% તક હવે છે ના યોગ્ય રીતે અનુમાન લગાવવા. 186 00:09:08,359 --> 00:09:09,650 તેથી તે ખરેખર દંડ હશે. 187 00:09:09,650 --> 00:09:12,770 સંમેલન દ્વારા, હું એક એરે સાથે કહેવું પડશે, અમે સામાન્ય રીતે, ડાબી પર શરૂ કરશે 188 00:09:12,770 --> 00:09:14,519 પરંતુ અમે ચોક્કસપણે કરી શકે જમણે શરૂ કરો. 189 00:09:14,519 --> 00:09:17,478 તેથી અહીં સ્પોઇલર હું હશે કદાચ તે ડાબી બાજુ પર ડ્રો જતાં, 190 00:09:17,478 --> 00:09:20,060 માત્ર એક સામાન્ય એરે જ્યાં ગમે હું ડાબેથી જમણે થઇ શરૂ કરો. 191 00:09:20,060 --> 00:09:21,780 પરંતુ તમે વિમાનની મુસાફરી કરી શકે તો અંકગણિત, દંડ. 192 00:09:21,780 --> 00:09:23,060 તે માત્ર પરંપરાગત નથી. 193 00:09:23,060 --> 00:09:24,880 ઠીક છે, હું એક કરવાની જરૂર છે છતાં વધુ બદલો. 194 00:09:24,880 --> 00:09:27,710 હવે હું કંઈક દબાણ કર્યું કે સ્ટેક પર, આગામી શું છે? 195 00:09:27,710 --> 00:09:29,400 >> બધા હક છે, હું કદ વધારો છે. 196 00:09:29,400 --> 00:09:32,600 તેથી મને આગળ અને માત્ર જવા દો શૂન્ય હતું જે આ અપડેટ કરો. 197 00:09:32,600 --> 00:09:35,950 અને તેના બદલે હવે, હું જાઉં છું કિંમત એક મૂકો. 198 00:09:35,950 --> 00:09:39,460 અને હવે હું અન્ય દબાણ ધારવું સ્ટેક પર નંબર 51 જેવા હોય છે. 199 00:09:39,460 --> 00:09:42,680 વેલ, હું એક વધુ બનાવવા માટે હોય છે કદ બે પર છે જે ફેરફાર. 200 00:09:42,680 --> 00:09:46,100 અને પછી હું એક વધુ દબાણ ધારવું 61 જેમ સ્ટેક પર નંબર, 201 00:09:46,100 --> 00:09:52,530 હવે હું કદ અપડેટ કરવાની જરૂર છે એક વધુ સમય, અને માપ તરીકે કિંમત 3 મળે છે. 202 00:09:52,530 --> 00:09:54,690 અને હવે હું પોપ કહી ધારવું. 203 00:09:54,690 --> 00:09:57,250 હમણાં સંમેલન દ્વારા, પૉપ, એક દલીલ નથી. 204 00:09:57,250 --> 00:10:00,430 સ્ટેક સાથે, સમગ્ર ટ્રે રૂપક બિંદુ 205 00:10:00,430 --> 00:10:03,450 તમે મુનસફી નથી કે છે કે ટ્રે મળી જવા, બધા તમે શું કરી શકો 206 00:10:03,450 --> 00:10:06,330 ના સર્વોચ્ચ એક પૉપ છે સ્ટેક, માત્ર કારણ કે. 207 00:10:06,330 --> 00:10:08,010 આ માહિતી કે માળખું શું કરે છે. 208 00:10:08,010 --> 00:10:12,250 >> જો કે તર્ક દ્વારા તેથી હું પૉપ, શું બંધ આવે કહે છે? 209 00:10:12,250 --> 00:10:13,080 તેથી 61. 210 00:10:13,080 --> 00:10:15,402 તેથી ખરેખર કોમ્પ્યુટર શું છે મેમરી કરવા જઇ? 211 00:10:15,402 --> 00:10:16,610 શું મારી કોડ કરવું છે? 212 00:10:16,610 --> 00:10:20,330 તમે શું પ્રસ્તાવ થશે અમે સ્ક્રીન પર બદલવા? 213 00:10:20,330 --> 00:10:23,410 શું બદલવા જોઇએ? 214 00:10:23,410 --> 00:10:24,960 માફ કરશો? 215 00:10:24,960 --> 00:10:26,334 તેથી અમે 61 છુટકારો મળે છે. 216 00:10:26,334 --> 00:10:27,500 તેથી હું ચોક્કસપણે કરી શકો છો. 217 00:10:27,500 --> 00:10:28,640 અને હું 61 છુટકારો મળી શકે છે. 218 00:10:28,640 --> 00:10:30,980 અને પછી અન્ય શું ફેરફાર થાય કરવાની જરૂર છે? 219 00:10:30,980 --> 00:10:33,160 માપ કદાચ બે પાછા જવા માટે છે. 220 00:10:33,160 --> 00:10:34,210 અને તેથી તે દંડ છે. 221 00:10:34,210 --> 00:10:36,690 પરંતુ એક મિનિટ, કદ રાહ એક ક્ષણ પહેલા ત્રણ હતો. 222 00:10:36,690 --> 00:10:38,240 માત્ર એક ઝડપી સેનીટી ચેક કરવા દો. 223 00:10:38,240 --> 00:10:41,810 અમે કેવી રીતે અમે જાણતા હતા કે 61 છુટકારો મેળવવા માગે છે? 224 00:10:41,810 --> 00:10:42,760 અમે ધાણી કરી રહ્યાં છો કારણ કે. 225 00:10:42,760 --> 00:10:46,450 અને તેથી હું આ બીજી મિલકત કદ ધરાવે છે. 226 00:10:46,450 --> 00:10:48,470 >> હું છું, એક મિનિટ રાહ જુઓ અઠવાડિયામાં બે પાછા વિચારવાનો 227 00:10:48,470 --> 00:10:51,660 અમે વિશે વાત કરવાનું શરૂ કર્યું ત્યારે આ સ્થાન શૂન્ય હતી, જ્યાં એરે, 228 00:10:51,660 --> 00:10:55,920 આ સ્થાન એક હતું, આ સ્થાન હતું બે, આ સ્થાન ત્રણ, ચાર છે, 229 00:10:55,920 --> 00:10:58,460 તે જેવી લાગે છે માપ વચ્ચે સંબંધ 230 00:10:58,460 --> 00:11:02,780 અને હું માંગો છો તે તત્વ દૂર કરવા એરે ફક્ત શું હોય તેવું લાગે છે? 231 00:11:02,780 --> 00:11:05,120 માપ ઓછા છે. 232 00:11:05,120 --> 00:11:07,786 અને તેથી તે કેવી રીતે મનુષ્યો છે અમે 61 પ્રથમ આવે ખબર. 233 00:11:07,786 --> 00:11:09,160 કેવી રીતે કમ્પ્યૂટર ખબર રહ્યું છે? 234 00:11:09,160 --> 00:11:11,701 જ્યારે તમારા કોડ છે, જ્યાં તમે કદાચ કદ ઓછા એક કરવા માંગો છો, 235 00:11:11,701 --> 00:11:14,950 તેથી ત્રણ ઓછા એક બે, અને તે છે અમે 61 છુટકારો મેળવવા માંગો છો છે. 236 00:11:14,950 --> 00:11:18,000 અને પછી અમે ખરેખર અપડેટ કરી શકો છો તે માપ જેથી માપ હવે 237 00:11:18,000 --> 00:11:20,300 માત્ર બે ત્રણ થી જાય છે. 238 00:11:20,300 --> 00:11:24,520 અને માત્ર વિદ્યાડબંરવાળું હોઇ શકે છે, હું જાઉં છું અધિકાર, હું કરી રહ્યો છું કે પ્રસ્તાવ માટે? 239 00:11:24,520 --> 00:11:27,660 તમે તર્ક સૂચિત યોગ્ય રીતે હું 61 છુટકારો મળી જોઈએ. 240 00:11:27,660 --> 00:11:30,700 પરંતુ નથી હું પ્રકારની સૉર્ટ 61 છુટકારો મેળવેલ? 241 00:11:30,700 --> 00:11:33,790 હું અસરકારક ભૂલી ગયા છો તે ખરેખર છે. 242 00:11:33,790 --> 00:11:37,680 તમે વાંચી કર્યું છે, તો પાછા pset4 લાગે વિદેશી વિશે લેખ, પીડીએફ 243 00:11:37,680 --> 00:11:40,780 અમે હતી કે તમે ગાય્ઝ વાંચી, અથવા તમે pset4 માટે આ સપ્તાહ વાંચી હશે. 244 00:11:40,780 --> 00:11:44,300 આ ખરેખર સંગત યાદ છે કે કમ્પ્યુટર વિદેશી સમગ્ર વિચાર. 245 00:11:44,300 --> 00:11:47,820 શું કમ્પ્યુટર સામાન્ય રીતે કરે છે કંઈક છે જ્યાં તે માત્ર forgets 246 00:11:47,820 --> 00:11:51,300 પરંતુ તે જાઓ અને પસંદ નથી તે બહાર અથવા ઓવરરાઈડ ખંજવાળી પ્રયાસ 247 00:11:51,300 --> 00:11:54,560 zeros અને મુદ્દાઓ સાથે તે બિટ્સ અથવા અમુક અન્ય રેન્ડમ પેટર્ન 248 00:11:54,560 --> 00:11:56,690 તમે જ્યાં સુધી જાતે જેથી ઇરાદાપૂર્વક નથી. 249 00:11:56,690 --> 00:11:58,930 તેથી તમારા અંતર્જ્ઞાન હતી અધિકાર, ચાલો 61 છુટકારો મેળવવા દો. 250 00:11:58,930 --> 00:12:00,650 પરંતુ વાસ્તવમાં, અમે સંતાપ નથી. 251 00:12:00,650 --> 00:12:04,040 અમે હમણાં જ ભૂલી ગયા છે કે જરૂર તે અમારા કદ બદલીને છે. 252 00:12:04,040 --> 00:12:05,662 >> હવે આ સ્ટેક સાથે સમસ્યા છે. 253 00:12:05,662 --> 00:12:07,620 હું વસ્તુઓ દબાણ રાખવા હોય તો સ્ટેક પર શું છે 254 00:12:07,620 --> 00:12:11,167 દેખીતી રીતે આમ થવાનું થોડી ક્ષણો સમય છે? 255 00:12:11,167 --> 00:12:12,500 અમે જગ્યા બહાર ચલાવવા માટે જઈ રહ્યાં છો. 256 00:12:12,500 --> 00:12:13,580 અને અમે શું કરવું? 257 00:12:13,580 --> 00:12:14,680 અમે પ્રકારની ખરાબ છો. 258 00:12:14,680 --> 00:12:19,000 આ અમલીકરણ દો નથી ઉપયોગ કારણ કે અમને એરે માપ બદલો 259 00:12:19,000 --> 00:12:21,240 આ વાક્યરચના છે, જો અઠવાડિયામાં બે પાછા લાગે છે, 260 00:12:21,240 --> 00:12:23,520 તમે જાહેર કર્યું છે એક વખત એક એરે માપ, 261 00:12:23,520 --> 00:12:26,780 અમે હજુ સુધી જ્યાં પદ્ધતિ જોઇ ન હોય તમે એરે માપ બદલી શકો છો. 262 00:12:26,780 --> 00:12:29,020 અને ખરેખર સી કે લક્ષણ નથી. 263 00:12:29,020 --> 00:12:32,524 જો તમે કહી મને પાંચ આપી Nths, તેમને કૉલ નંબરો, 264 00:12:32,524 --> 00:12:33,940 તમે તેને વિચાર જઈ રહ્યાં છો બધા છે. 265 00:12:33,940 --> 00:12:38,790 તેથી અમે સોમવાર તરીકે હવે શું છે, ઉકેલ વ્યક્ત કરવાની ક્ષમતા 266 00:12:38,790 --> 00:12:42,480 છતાં, અમે હમણાં જ ઝટકો જરૂર અમારા સ્ટેક ની વ્યાખ્યા 267 00:12:42,480 --> 00:12:46,840 કેટલાક હાર્ડ કોડેડ એરે નથી, પરંતુ માત્ર એક સરનામું સ્ટોર. 268 00:12:46,840 --> 00:12:47,890 >> હવે આ કેમ છે? 269 00:12:47,890 --> 00:12:51,690 હવે અમે માત્ર સાથે આરામદાયક હોય છે હકીકત એ છે કે મારા કાર્યક્રમ ચાલે છે ત્યારે, 270 00:12:51,690 --> 00:12:53,730 હું કદાચ જાઉં છું માનવ પૂછી, 271 00:12:53,730 --> 00:12:55,110 કેટલા નંબરો તમે સંગ્રહ કરવા માંગો છો? 272 00:12:55,110 --> 00:12:56,776 તેથી ઇનપુટ ક્યાંક આવે છે. 273 00:12:56,776 --> 00:12:59,140 પરંતુ મને લાગે છે કે એક વખતમાં નંબર, પછી હું માત્ર કરી શકો છો 274 00:12:59,140 --> 00:13:02,470 આપવા માટે કામ શું ઉપયોગ મને મેમરી એક ભાગ? 275 00:13:02,470 --> 00:13:03,580 હું malloc ઉપયોગ કરી શકો છો. 276 00:13:03,580 --> 00:13:06,710 અને હું કોઈપણ નંબર કહી શકો છો બાઇટ્સ હું પાછા આ Nths માટે કરવા માંગો છો. 277 00:13:06,710 --> 00:13:10,910 અને હું બધા નંબરો સ્ટોર કરવા માટે હોય છે આ સ્ટ્રક્ટ ની અંદર અહીં ચલ 278 00:13:10,910 --> 00:13:13,480 શું હોવું જોઈએ? 279 00:13:13,480 --> 00:13:18,440 શું ખરેખર જાય આ દ્રશ્ય નંબરો? 280 00:13:18,440 --> 00:13:21,300 અરે વાહ, આ પ્રથમ એક નિર્દેશક મેમરી કે ચંકને બાઇટ, 281 00:13:21,300 --> 00:13:24,940 અથવા વધુ ખાસ કરીને, સરનામું તે બાઇટ્સ પ્રથમ. 282 00:13:24,940 --> 00:13:27,300 તે એક છે, તો વાંધો નથી બાઇટ કે એક અબજ બાઇટ્સ, 283 00:13:27,300 --> 00:13:28,890 હું માત્ર પ્રથમ વિશે કાળજી કરવાની જરૂર છે. 284 00:13:28,890 --> 00:13:31,530 કારણ કે શું malloc ગેરંટી અને મારા ઓપરેટિંગ સિસ્ટમ ગેરન્ટી, 285 00:13:31,530 --> 00:13:34,170 છે કે મેમરી હું Chunk વિચાર, તે સંલગ્ન હશે. 286 00:13:34,170 --> 00:13:35,378 ગાબડા હોય ચાલી રહ્યું છે. 287 00:13:35,378 --> 00:13:38,576 હું 50 માટે પૂછ્યું છે, તેથી જો બાઇટ્સ અથવા 1,000 બાઇટ્સ, 288 00:13:38,576 --> 00:13:40,450 તેઓ બધા પ્રયત્ન જઈ રહ્યાં છો પાછળ પાછળ પાછળ છે. 289 00:13:40,450 --> 00:13:44,500 અને તેથી લાંબા સમય સુધી હું કેવી રીતે કેવી રીતે મોટા યાદ ખૂબ હું જાણવાની જરૂર છે, બધા માટે પૂછવામાં 290 00:13:44,500 --> 00:13:46,230 પ્રથમ જેમ કે સરનામું છે. 291 00:13:46,230 --> 00:13:48,660 >> તેથી હવે અમે કોડ ક્ષમતા હોય છે. 292 00:13:48,660 --> 00:13:51,280 જોકે, તે અમને લાગી રહ્યું છે વધુ સમય, આ અપ લખવા માટે 293 00:13:51,280 --> 00:13:55,900 અમે હવે કે મેમરી ફરી ફાળવવા શકે માત્ર ત્યાં એક ભિન્ન સરનામું સ્ટોર 294 00:13:55,900 --> 00:13:59,060 અમે પણ એક મોટી અથવા માંગો છો, તો મેમરી એક નાની Chunk. 295 00:13:59,060 --> 00:14:00,170 તેથી અહીં વેપાર નોંધાયો નહીં. 296 00:14:00,170 --> 00:14:01,360 હવે અમે dynamism મળે છે. 297 00:14:01,360 --> 00:14:03,350 અમે હજુ પણ હોય છે contiguousness હું દાવો છું. 298 00:14:03,350 --> 00:14:05,881 Malloc અમને આપે છે, કારણ મેમરી એક સંલગ્ન ભાગ. 299 00:14:05,881 --> 00:14:08,630 પરંતુ આ એક પીડા હોઈ ચાલે છે અમારા માટે ગરદન, પ્રોગ્રામર, 300 00:14:08,630 --> 00:14:09,770 વાસ્તવમાં કોડ માટે. 301 00:14:09,770 --> 00:14:10,730 તે માત્ર વધુ કામ છે. 302 00:14:10,730 --> 00:14:13,930 અમે હું શું સમાન કોડ જરૂર માત્ર એક ક્ષણ પહેલા બહાર એકાએક સપાટો. 303 00:14:13,930 --> 00:14:16,120 ખૂબ જ doable છે, પરંતુ તે જટિલતા ઉમેરે છે. 304 00:14:16,120 --> 00:14:19,520 અને તેથી ડેવલપર સમય, પ્રોગ્રામર સમય હજુ સુધી અન્ય સ્ત્રોત છે 305 00:14:19,520 --> 00:14:22,520 અમે પસાર કરવા માટે જરૂર પડી શકે છે કે કેટલાક સમય નવી સુવિધાઓ મેળવવા માટે. 306 00:14:22,520 --> 00:14:24,020 અને પછી અલબત્ત એક કતાર છે. 307 00:14:24,020 --> 00:14:26,227 અમે આ જાય નહીં ખૂબ વિગતવાર છે. 308 00:14:26,227 --> 00:14:27,560 પરંતુ તે ભાવના જ છે. 309 00:14:27,560 --> 00:14:31,220 હું એક કતાર અમલ શકે છે, અને તેના અનુરૂપ કામગીરી 310 00:14:31,220 --> 00:14:35,660 એન્ક્યૂ અથવા dequeue ઉમેરવા અથવા દૂર કરવા જેવી, તે કહેતા માત્ર એક પારખુ માર્ગ છે 311 00:14:35,660 --> 00:14:38,100 એન્ક્યૂ અથવા dequeue તરીકે અનુસરે છે. 312 00:14:38,100 --> 00:14:41,170 હું માત્ર મારી એક સ્ટ્રક્ટ આપી શકે છે કે ફરી એક નંબર એરે છે, 313 00:14:41,170 --> 00:14:44,000 કે ફરી એક માપ છે, પરંતુ હવે હું શા માટે જરૂર નથી 314 00:14:44,000 --> 00:14:46,940 એક કતાર આગળના ટ્રેક રાખવા માટે? 315 00:14:46,940 --> 00:14:50,630 મને ખબર જરૂર ન હતી મારા સ્ટેક ફ્રન્ટ. 316 00:14:50,630 --> 00:14:53,570 વેલ, જો હું ફરીથી માટે queue-- માત્ર હાર્ડ ચાલો 317 00:14:53,570 --> 00:14:57,870 પાંચ જેવા હોવા તરીકે તે કોડ અહીં સંભવિત માં પૂર્ણાંકો. 318 00:14:57,870 --> 00:15:00,940 તેથી આ શૂન્ય, એક, બે, ત્રણ, ચાર છે. 319 00:15:00,940 --> 00:15:03,430 આ એટલા માટે થઈ રહ્યું છે ફરીથી કહેવાય નંબરો. 320 00:15:03,430 --> 00:15:06,940 અને આ માપ કહેવામાં આવશે. 321 00:15:06,940 --> 00:15:10,056 >> તે શા માટે પૂરતી નહી હોય તે માત્ર માપ છે? 322 00:15:10,056 --> 00:15:11,680 ઠીક છે, ચાલો પર તે જ નંબરો દબાણ દો. 323 00:15:11,680 --> 00:15:14,220 તેથી હું કતારબદ્ધ, અથવા દબાણ pushed--. 324 00:15:14,220 --> 00:15:20,150 હવે હું પછી 50 એન્ક્યૂ, અને પડશે 51, અને પછી 61 અને ડોટ ડોટ ડોટ. 325 00:15:20,150 --> 00:15:21,070 તેથી તે એન્ક્યૂ છે. 326 00:15:21,070 --> 00:15:23,176 હું પછી 61, પછી 50, 51 કતારબદ્ધ. 327 00:15:23,176 --> 00:15:25,050 અને તે સમાન લાગે છે આમ અત્યાર સુધી સ્ટેક માટે, 328 00:15:25,050 --> 00:15:27,190 સિવાય હું એક ફેરફાર કરવા માટે જરૂર નથી. 329 00:15:27,190 --> 00:15:33,680 હું આ કદ અપડેટ કરવાની જરૂર છે, તેથી હું જાઓ હવે ત્રણ બે એક શૂન્ય છે. 330 00:15:33,680 --> 00:15:35,760 હું કેવી રીતે dequeue નથી? 331 00:15:35,760 --> 00:15:36,890 શું dequeue સાથે થાય છે? 332 00:15:36,890 --> 00:15:41,950 કોણ પ્રથમ આ યાદી બંધ આવવું જોઈએ તે એપલ સ્ટોર પર લીટી છે તો શું? 333 00:15:41,950 --> 00:15:42,780 તેથી 50. 334 00:15:42,780 --> 00:15:44,700 તેથી તે પ્રકારની trickier આ સમય છે. 335 00:15:44,700 --> 00:15:47,880 છેલ્લા સમય જ્યારે તે સુપર હતી સરળ ફક્ત માપ ઓછા એક કરવા માટે 336 00:15:47,880 --> 00:15:51,440 હું અસરકારક મારા એરે ઓવરને મેળવવા નંબરો છે, જ્યાં તે 61 દૂર કરે છે. 337 00:15:51,440 --> 00:15:52,920 પરંતુ હું 61 દૂર કરવા માંગો છો નથી. 338 00:15:52,920 --> 00:15:55,030 હું 50 લેવા માગતા 5:00 ખાતે આવી હતી 339 00:15:55,030 --> 00:15:56,790 આ માટે લાઇન નવા આઇફોન અથવા whatnot. 340 00:15:56,790 --> 00:16:01,200 અને તેથી હું 50 છુટકારો મેળવવા માટે માત્ર અધિકાર છે, આ કરી શકતા નથી? 341 00:16:01,200 --> 00:16:02,547 હું 50 બહાર પાર કરી શકે છે. 342 00:16:02,547 --> 00:16:04,380 પરંતુ અમે માત્ર અમે જણાવ્યું હતું કે તેથી ગુદા હોય નથી 343 00:16:04,380 --> 00:16:06,330 તરીકે બહાર ખંજવાળી અથવા માહિતી છુપાવવા માટે. 344 00:16:06,330 --> 00:16:08,090 જ્યાં તે છે અમે હમણાં જ ભૂલી શકો છો. 345 00:16:08,090 --> 00:16:12,330 >> પરંતુ હું હવે મારી માપ બદલી હોય તો બે, આ પૂરતી માહિતી છે 346 00:16:12,330 --> 00:16:15,711 મારા કતારમાં પર ચાલે છે તે જાણવા માટે કેવી રીતે? 347 00:16:15,711 --> 00:16:16,680 ખરેખર નહિ. 348 00:16:16,680 --> 00:16:19,830 મારા કદ, બે ગમે છે પરંતુ કતાર જ્યાં શરૂ નથી, 349 00:16:19,830 --> 00:16:22,980 ખાસ કરીને હું હજુ પણ હોય છે, તો મેમરી તે જ નંબરો. 350 00:16:22,980 --> 00:16:24,260 50, 51, 61. 351 00:16:24,260 --> 00:16:27,090 તેથી હું યાદ કરવાની જરૂર છે હવે સામે છે. 352 00:16:27,090 --> 00:16:29,630 અને તેથી હું સૂચિત તરીકે ત્યાં, અમે ફક્ત કહે છે પડશે 353 00:16:29,630 --> 00:16:33,729 જેની પ્રારંભિક Nth સામે, કિંમત શું કરવામાં આવી છે જોઇએ? 354 00:16:33,729 --> 00:16:35,270 ઝીરો, આ યાદી માત્ર શરૂઆત. 355 00:16:35,270 --> 00:16:40,876 પરંતુ હવે વધુમાં decrementing માટે કદ, અમે ફક્ત ફ્રન્ટ વધારો. 356 00:16:40,876 --> 00:16:42,000 હવે અહીં અન્ય સમસ્યા છે. 357 00:16:42,000 --> 00:16:43,030 તેથી હું ચાલુ રાખવામાં એકવાર. 358 00:16:43,030 --> 00:16:47,520 આ સંખ્યા છે ધારો જેવા 121, 124, અને પછી, dammit, 359 00:16:47,520 --> 00:16:48,610 હું જગ્યા બહાર છું. 360 00:16:48,610 --> 00:16:50,390 પરંતુ હું નથી, એક મિનિટ રાહ જુઓ. 361 00:16:50,390 --> 00:16:55,630 વાર્તામાં આ બિંદુએ તેથી, કદ એક, બે ધારો કે, 362 00:16:55,630 --> 00:17:00,370 ત્રણ, ચાર, જેથી કે જે ધારવું કદ, ફ્રન્ટ છે, ચાર 363 00:17:00,370 --> 00:17:01,621 જેથી 51 આ બોલ પર છે. 364 00:17:01,621 --> 00:17:04,329 હું અહીં બીજા નંબર મૂકી કરવા માંગો છો, પરંતુ, dammit, હું જગ્યા બહાર છું. 365 00:17:04,329 --> 00:17:06,710 પરંતુ હું અધિકાર, ખરેખર નથી? 366 00:17:06,710 --> 00:17:11,192 હું કેટલાક જ્યાં મૂકી શકે 171 જેવા વધારાના કિંમત? 367 00:17:11,192 --> 00:17:13,400 અરે વાહ, હું કરી શકે છે માત્ર પ્રકારની અધિકાર પાછા ત્યાં જાઓ? 368 00:17:13,400 --> 00:17:18,161 અને પછી 50 બહાર પાર, અથવા માત્ર 171 સાથે ફરીથી લખી. 369 00:17:18,161 --> 00:17:20,410 અને તમે શા માટે આશ્ચર્ય પામી રહ્યાં છો, તો અમારા નંબરો, જેથી રેન્ડમ મળી 370 00:17:20,410 --> 00:17:24,150 આ સામાન્ય રીતે કોમ્પ્યુટર લેવામાં આવે છે CS50 પછી હાર્વર્ડ ખાતે વિજ્ઞાન અભ્યાસક્રમો. 371 00:17:24,150 --> 00:17:27,510 પરંતુ તે એક સારી ઓપ્ટિમાઇઝેશન હતી, હવે, કારણ કે હું જગ્યા બગાડ છું. 372 00:17:27,510 --> 00:17:30,750 હું હજુ પણ યાદ છે કેવી રીતે મોટા આ વસ્તુ કુલ છે. 373 00:17:30,750 --> 00:17:31,500 તે પાંચ કુલ છે. 374 00:17:31,500 --> 00:17:33,375 હું નથી માંગતા કારણ કે 51 ફરીથી લખી શરૂ કરો. 375 00:17:33,375 --> 00:17:36,260 તેથી હવે હું હજુ પણ જગ્યાની બહાર છું, તેથી જ સમસ્યા તરીકે તે પહેલાં. 376 00:17:36,260 --> 00:17:39,140 પરંતુ તમે કેવી રીતે હવે જોઈ શકો છો તમારો કોડ માં, તમે કદાચ 377 00:17:39,140 --> 00:17:41,910 થોડી વધુ લખવા માટે હોય છે જટિલતા કે બનાવવા માટે થાય છે. 378 00:17:41,910 --> 00:17:44,510 અને હકીકતમાં, શું ઓપરેટર સી કદાચ દે 379 00:17:44,510 --> 00:17:48,110 તમે જાદુઇ આ circularity છે? 380 00:17:48,110 --> 00:17:50,160 અરે વાહ આ મોડ્યૂલો ઓપરેટર, ટકા સાઇન. 381 00:17:50,160 --> 00:17:53,160 તેથી કતાર પ્રકારની વિશે ઠંડી છે શું અમે ચિત્રકામ એરે રાખવા છતાં પણ 382 00:17:53,160 --> 00:17:56,520 આ જેવા સીધી રેખા તરીકે, તમે તો પ્રકારની curving તરીકે આ વિશે વિચારો 383 00:17:56,520 --> 00:18:00,341 આસપાસ વર્તુળ, તો પછી માત્ર તર્ક તે પ્રકારની માનસિક કામ કરે છે 384 00:18:00,341 --> 00:18:01,590 હું વધુ સ્વચ્છ થોડી લાગે છે. 385 00:18:01,590 --> 00:18:05,190 જો તમે હજુ પણ અમલ કરવા માટે હોય છે કોડ કે માનસિક મોડેલ. 386 00:18:05,190 --> 00:18:07,550 તેથી તે હાર્ડ, આખરે, અમલ કરવા માટે 387 00:18:07,550 --> 00:18:12,430 પરંતુ અમે હજુ પણ તેના બદલે, આ ચોક્કસ માપ ગુમાવી અમે આ કરવા સિવાય ક્ષમતા, આકાર બદલવા માટે. 388 00:18:12,430 --> 00:18:15,310 >> અમે એરે છૂટકારો મેળવવા હોય છે, અમે એક નિર્દેશક સાથે બદલો, 389 00:18:15,310 --> 00:18:20,010 અને પછી ક્યાંક મારા કોડ માં હું મળી છે ખરેખર બનાવવા માટે કામ શું કહી 390 00:18:20,010 --> 00:18:23,720 એરે કહેવાય નંબરો? 391 00:18:23,720 --> 00:18:26,190 Malloc છે, અથવા અમુક સમાન કાર્ય, બરાબર. 392 00:18:26,190 --> 00:18:30,481 રન ટાઇમ સ્ટેકનું અથવા ક્યુને પર કોઈપણ પ્રશ્નો. 393 00:18:30,481 --> 00:18:30,980 અરે વાહ? 394 00:18:30,980 --> 00:18:33,657 395 00:18:33,657 --> 00:18:34,240 સારા પ્રશ્ન. 396 00:18:34,240 --> 00:18:35,830 શું મોડ્યૂલો તમે અહીં ઉપયોગ કરશે. 397 00:18:35,830 --> 00:18:38,520 તેથી સામાન્ય રીતે, વાપરી રહ્યા હોય ત્યારે ફેરફારની, તો તમે તેને શું કરશે 398 00:18:38,520 --> 00:18:40,620 આ માપ સાથે સમગ્ર માહિતી માળખું. 399 00:18:40,620 --> 00:18:44,120 તેથી કંઈક પાંચ કે ક્ષમતા, જો તે સતત છે, કદાચ સામેલ છે. 400 00:18:44,120 --> 00:18:47,100 પરંતુ માત્ર મોડ્યૂલો પાંચ કરવાનું કદાચ પૂરતી નહી હોય તે 401 00:18:47,100 --> 00:18:51,380 અમે જાણવાની જરૂર છે કારણ કે અમે શું અહીં અથવા અહીં અથવા અહીં આસપાસ લપેટી. 402 00:18:51,380 --> 00:18:54,160 તેથી તમે કદાચ પણ છો સમાવેશ કરવા માંગો છો જઈ 403 00:18:54,160 --> 00:18:57,220 આ વસ્તુ માપ, અથવા તેમજ આ બોલ ચલ. 404 00:18:57,220 --> 00:19:00,140 તેથી તે માત્ર આ પ્રમાણમાં છે સરળ અંકગણિત અભિવ્યક્તિ, 405 00:19:00,140 --> 00:19:02,000 પરંતુ મોડ્યૂલો કી ઘટક હશે. 406 00:19:02,000 --> 00:19:03,330 >> તેથી ટૂંકા ફિલ્મ જો તમે કરશે. 407 00:19:03,330 --> 00:19:05,780 એનિમેશન કે કેટલાક અન્ય યુનિવર્સિટી ખાતે જાણતા 408 00:19:05,780 --> 00:19:08,060 અમે કર્યું કે સાથે મૂકવામાં આ ચર્ચા માટે ટેવાયેલા. 409 00:19:08,060 --> 00:19:12,630 તે જેક શીખવાની સમાવેશ થાય છે ક્યુને અને આંકડા વિશે હકીકતો. 410 00:19:12,630 --> 00:19:19,010 411 00:19:19,010 --> 00:19:21,890 >> ફિલ્મ: એક સમય પર એકવાર, જેક નામના વ્યક્તિ આવી હતી. 412 00:19:21,890 --> 00:19:25,330 તે મિત્રો બનાવવા માટે આવ્યા ત્યારે, જેક એક હથોટી ન હતી. 413 00:19:25,330 --> 00:19:28,220 તેથી જેક સાથે વાત કરવા ગયા સૌથી વધુ લોકપ્રિય વ્યક્તિ તે જાણતા હતા. 414 00:19:28,220 --> 00:19:30,920 તેમણે લૌ ગયા અને હું શું કરી શકું, કહ્યું? 415 00:19:30,920 --> 00:19:33,400 લૌ તેમના મિત્ર જોયું કે ખરેખર ઉદાસ હતી. 416 00:19:33,400 --> 00:19:36,050 વેલ, તે માત્ર શરૂ કર્યું તમે પોશાક રહ્યાં છો કેવી રીતે જુઓ. 417 00:19:36,050 --> 00:19:38,680 જો તમે કોઇ કપડાં નથી એક અલગ દેખાવ સાથે? 418 00:19:38,680 --> 00:19:39,660 હા, જેક જણાવ્યું હતું. 419 00:19:39,660 --> 00:19:40,840 મને ખાતરી છે કે નથી. 420 00:19:40,840 --> 00:19:43,320 મારા ઘરમાં આવે છે અને હું તમે તેમને બતાવવા પડશે. 421 00:19:43,320 --> 00:19:44,550 તેથી તેઓ જેક માટે આ બોલ પર ગયા હતા. 422 00:19:44,550 --> 00:19:47,520 અને જેક લૌ બોક્સ દર્શાવે છે જ્યાં તેમણે, બધા તેમના શર્ટ રાખવામાં 423 00:19:47,520 --> 00:19:49,260 અને તેના પેન્ટ, અને તેમના મોજાં. 424 00:19:49,260 --> 00:19:52,290 લૌ હું તમારી પાસે જોવા જણાવ્યું હતું કે, એક ખૂંટો માં તમારા તમામ કપડાં. 425 00:19:52,290 --> 00:19:54,870 શા માટે તમે કેટલાક વસ્ત્રો નથી ક્ષણભર એક વખત અન્ય? 426 00:19:54,870 --> 00:19:58,020 >> જેક જણાવ્યું હતું કે, ઠીક છે, જ્યારે હું કપડાં અને SOCKS દૂર 427 00:19:58,020 --> 00:20:00,780 હું તેમને કપડાં ધોવા અને મૂકી તેમને દૂર બોક્સમાં. 428 00:20:00,780 --> 00:20:03,210 પછી આગામી આવે છે સવારે, અને હું હોપ. 429 00:20:03,210 --> 00:20:06,380 હું બોક્સ પર જાઓ અને વિચાર ટોચ બોલ મારા કપડાં. 430 00:20:06,380 --> 00:20:09,070 લૌ ઝડપથી ભાન જેક સાથે સમસ્યા. 431 00:20:09,070 --> 00:20:12,080 તેમણે કપડાં, સીડી માતાનો રાખવામાં અને સ્ટેક માં પુસ્તકો. 432 00:20:12,080 --> 00:20:14,420 તે માટે પહોંચ્યા ત્યારે કંઇક વાંચવા અથવા પહેરવા, 433 00:20:14,420 --> 00:20:17,100 તેમણે ટોચ પુસ્તક અથવા અન્ડરવેર પસંદ કરો છો. 434 00:20:17,100 --> 00:20:19,500 પછી તેણે કરવામાં આવી હતી જ્યારે, તેમણે અધિકાર પાછા તે મૂકવામાં આવશે. 435 00:20:19,500 --> 00:20:21,970 તે પાછા સ્ટેક ટોચ પર, જાઓ કરશે. 436 00:20:21,970 --> 00:20:24,460 હું ઉકેલ ખબર છે, વિજયી મોટા જણાવ્યું હતું. 437 00:20:24,460 --> 00:20:27,090 તમે જાણવા જરૂર છે એક કતાર ઉપયોગ શરૂ. 438 00:20:27,090 --> 00:20:29,870 લૌ માતાનો જેક કપડાં લઈને આ કબાટ માં તેમને ફરવા ગયા. 439 00:20:29,870 --> 00:20:32,710 અને તે ખાલી હતું ત્યારે બોક્સ, તે માત્ર તેને નોંધાયો. 440 00:20:32,710 --> 00:20:36,500 >> પછી તેણે જેક ઓવરને અંતે, હવે જણાવ્યું હતું કે, દિવસ, ડાબી પર તમારા કપડાં મૂકવા 441 00:20:36,500 --> 00:20:37,990 તમે તેમને દૂર મૂકી છે. 442 00:20:37,990 --> 00:20:41,300 પછી કાલે સવારે જ્યારે તમે તમારા કપડાં મેળવવા માટે, સનશાઇન જોવા 443 00:20:41,300 --> 00:20:43,440 લીટી ઓવરને ના અધિકાર પર. 444 00:20:43,440 --> 00:20:44,880 તમે જોઈ નથી? લૌ હતું. 445 00:20:44,880 --> 00:20:46,370 તે આવું સરસ હશે. 446 00:20:46,370 --> 00:20:49,770 તમે એક વાર બધું વસ્ત્રો પડશે પહેલાં તમે બે વાર કંઈક પહેરે છે. 447 00:20:49,770 --> 00:20:52,670 અને ક્યુને બધું સાથે તેમના કબાટ અને શેલ્ફ, 448 00:20:52,670 --> 00:20:55,160 જેક લાગે શરૂ પોતે તદ્દન ખાતરી કરો. 449 00:20:55,160 --> 00:20:59,720 લૌ બધા આભાર અને તેમના અદ્ભુત કતાર. 450 00:20:59,720 --> 00:21:01,220 1 વક્તા: બધા હક છે, તે માનનીય છે. 451 00:21:01,220 --> 00:21:05,920 452 00:21:05,920 --> 00:21:10,080 તેથી ખરેખર ચાલુ કરવામાં આવી છે તે હવે હૂડ નીચે? 453 00:21:10,080 --> 00:21:12,370 અમે પોઇન્ટર છે કે, અમે malloc છે, 454 00:21:12,370 --> 00:21:15,680 અમે બનાવવા માટે ક્ષમતા હોય છે કે જાતને માટે મેમરી હિસ્સામાં 455 00:21:15,680 --> 00:21:16,344 ગતિશીલ. 456 00:21:16,344 --> 00:21:18,510 તેથી આ એક ચિત્ર અમે છે જસ્ટ બીજા દિવસે જોવામાં. 457 00:21:18,510 --> 00:21:21,180 અમે ખરેખર રહેવું ન હતી તે પર, પરંતુ આ ચિત્ર 458 00:21:21,180 --> 00:21:24,180 નીચે છે ચાલુ કરવામાં આવી હવે અઠવાડિયા માટે હૂડ. 459 00:21:24,180 --> 00:21:27,050 અને તેથી આ જ રજૂ અમે દોરવામાં કર્યું છે કે લંબચોરસ, 460 00:21:27,050 --> 00:21:28,180 તમારા કમ્પ્યુટરની મેમરી. 461 00:21:28,180 --> 00:21:31,850 અને કદાચ તમારા કમ્પ્યુટર, અથવા CS50 ને, મેમરી અથવા રેમ એક gigabyte છે 462 00:21:31,850 --> 00:21:33,050 અથવા બે ગીગાબાઇટ્સ અથવા ચાર. 463 00:21:33,050 --> 00:21:34,450 તે ખરેખર તો કોઈ વાંધો નથી. 464 00:21:34,450 --> 00:21:37,240 તમારી ઓપરેટિંગ સિસ્ટમ વિન્ડોઝ અથવા મેક ઓએસ અથવા Linux, 465 00:21:37,240 --> 00:21:41,120 અનિવાર્યપણે તમારા કાર્યક્રમ માટે પરવાનગી આપે છે તે વપરાશ છે કે જે વિચારો 466 00:21:41,120 --> 00:21:42,982 સમગ્ર માટે તમારા કમ્પ્યુટરની મેમરી 467 00:21:42,982 --> 00:21:45,440 પણ તમે ચાલી હોઈ શકે, છતાં એક જ સમયે બહુવિધ કાર્યક્રમો. 468 00:21:45,440 --> 00:21:46,990 તેથી વાસ્તવમાં, તે ખરેખર કામ કરતું નથી. 469 00:21:46,990 --> 00:21:49,448 પરંતુ તે એક ભ્રમ પ્રકારની છે તમારા કાર્યક્રમો તમામ આપવામાં આવે છે. 470 00:21:49,448 --> 00:21:53,110 તેથી જો તમે આ RAM ની બે શોના હતી કમ્પ્યુટર તેને લાગે શકે છે કેવી રીતે છે. 471 00:21:53,110 --> 00:21:57,110 >> હવે સાંયોગિક, આ એક વસ્તુઓ, મેમરી આ સેગમેન્ટ એક, 472 00:21:57,110 --> 00:21:58,350 સ્ટેક કહેવાય છે. 473 00:21:58,350 --> 00:22:01,680 અને ખરેખર કોઈપણ સમયે આમ અત્યાર સુધી લેખન કોડ 474 00:22:01,680 --> 00:22:05,900 તમે કહે છે કે એક ઉદાહરણ મુખ્ય માટે કાર્ય. 475 00:22:05,900 --> 00:22:08,410 કોઈપણ સમયે હું કર્યું જણાવ્યું હતું કે દોરવામાં કમ્પ્યુટરની મેમરી 476 00:22:08,410 --> 00:22:10,640 હું હંમેશા સૉર્ટ ડ્રો અહીં એક લંબચોરસ અડધા 477 00:22:10,640 --> 00:22:12,520 અને વાત નથી સંતાપ નથી ઉપર શું છે તે વિશે. 478 00:22:12,520 --> 00:22:15,980 મુખ્ય કહેવામાં આવે છે, ત્યારે હું દાવો કારણ કે તમે મેમરી આ sliver મળી છે કે જે 479 00:22:15,980 --> 00:22:16,970 કે અહીં નીચે જાય છે. 480 00:22:16,970 --> 00:22:20,650 મુખ્ય હોય તો અને કાર્ય કહેવાય સ્વેપ, સારી રીતે સ્વેપ અહીં જાય છે. 481 00:22:20,650 --> 00:22:23,720 અને તે છે, બહાર વળે જ્યાં તે અંત છે. 482 00:22:23,720 --> 00:22:26,277 સ્ટેક કહેવાય કંઈક પર તમારા કમ્પ્યુટરની મેમરી ની અંદર. 483 00:22:26,277 --> 00:22:28,360 હવે દિવસ ઓવરને અંતે, આ માત્ર સંબોધે છે. 484 00:22:28,360 --> 00:22:30,680 તે બાઇટ શૂન્ય જેવી છે બાઇટ એક બાઇટ 2 અબજ. 485 00:22:30,680 --> 00:22:33,130 પરંતુ તમે તે વિશે વિચારો તો આ લંબચોરસ પદાર્થ તરીકે, 486 00:22:33,130 --> 00:22:35,130 બધા અમે દરેક કરી રહ્યા છીએ સમય અમે એક કાર્ય છે કૉલ 487 00:22:35,130 --> 00:22:37,180 મેમરી એક નવી સ્લાઇસ layering. 488 00:22:37,180 --> 00:22:41,700 અમે એક સ્લાઇસ કે કાર્ય કરી રહ્યા છો આપ્યા તેની પોતાની મેમરી સાથે કામ કરવા માટે. 489 00:22:41,700 --> 00:22:44,490 >> અને આ મહત્વપૂર્ણ છે કે હવે યાદ અપાવે છે. 490 00:22:44,490 --> 00:22:46,400 અમે હોય તો કારણ સ્વેપ કંઈક 491 00:22:46,400 --> 00:22:51,610 A અને B અને જેમ અને બે સ્થાનિક ચલો અમે એક અને બે થી તે મૂલ્યો બદલી 492 00:22:51,610 --> 00:22:55,130 બે અને એક યાદ સ્વેપ વળતર ત્યારે, 493 00:22:55,130 --> 00:22:58,330 તે આ સ્લાઇસ છતાં તરીકે છે માત્ર મેમરી ગયો છે. 494 00:22:58,330 --> 00:23:00,080 વાસ્તવમાં, તે હજુ પણ છે ત્યાં forensically. 495 00:23:00,080 --> 00:23:01,940 અને કંઈક ખરેખર ત્યાં હજુ પણ છે. 496 00:23:01,940 --> 00:23:05,410 પરંતુ કલ્પનાત્મક રીતે, તે છે છતાં તે સંપૂર્ણપણે ગઇ છે. 497 00:23:05,410 --> 00:23:10,910 અને તેથી મુખ્ય કામ કોઇ પણ ખબર નથી કે, સ્વેપ કાર્ય માં કરવામાં આવ્યું હતું 498 00:23:10,910 --> 00:23:14,890 તે ખરેખર તે પસાર છે, જ્યાં સુધી નિર્દેશક દ્વારા અથવા સંદર્ભ દ્વારા દલીલો. 499 00:23:14,890 --> 00:23:17,790 હવે, મૂળભૂત ઉકેલ સ્વેપ સાથે સમસ્યા 500 00:23:17,790 --> 00:23:19,970 સરનામું દ્વારા વસ્તુઓ પસાર થાય છે. 501 00:23:19,970 --> 00:23:23,250 પરંતુ તે પણ શું છે, બહાર વળે કે ભાગ ઉપર ચાલુ કરવામાં આવી 502 00:23:23,250 --> 00:23:26,330 લંબચોરસ આ બધા સમય છે હજુ સુધી વધુ મેમરી ત્યાં છે. 503 00:23:26,330 --> 00:23:28,790 અને જ્યારે તમે ગતિશીલ મેમરીને ફાળવવા, 504 00:23:28,790 --> 00:23:32,020 તે GetString, અંદર શું છે, જે અમે CS50 માં તમારા માટે કરી રહ્યો છું 505 00:23:32,020 --> 00:23:34,710 પુસ્તકાલય, અથવા તમે ગાય્સ તો malloc કૉલ અને પૂછો 506 00:23:34,710 --> 00:23:37,950 એક ભાગ માટે ઓપરેટિંગ સિસ્ટમ મેમરી તે સ્ટેક આવે નથી. 507 00:23:37,950 --> 00:23:40,960 બીજા સ્થળ પરથી આવે છે તમારા કમ્પ્યુટરની મેમરી 508 00:23:40,960 --> 00:23:42,220 કે ઢગલો કહેવાય છે. 509 00:23:42,220 --> 00:23:43,430 અને તે કોઈ પણ અલગ નથી. 510 00:23:43,430 --> 00:23:44,285 તે જ રામની. 511 00:23:44,285 --> 00:23:45,160 તે જ મેમરી છે. 512 00:23:45,160 --> 00:23:49,080 તે છે કે જે હમણાં જ રામની ત્યાં બદલે નીચે અહીં. 513 00:23:49,080 --> 00:23:50,750 >> અને તેથી કે શું અર્થ છે? 514 00:23:50,750 --> 00:23:53,650 વેલ, તમારા કમ્પ્યુટર હોય તો મેમરી એક મર્યાદિત રકમ 515 00:23:53,650 --> 00:23:57,450 અને સ્ટેક, જેથી વધતી જાય છે બોલે છે, અને ઢગલો, અનુસાર 516 00:23:57,450 --> 00:23:59,349 આ તીર નીચે વધી રહી છે. 517 00:23:59,349 --> 00:24:01,140 અન્ય શબ્દોમાં, દરેક સમય તમે malloc કૉલ, 518 00:24:01,140 --> 00:24:03,430 તમે એક સ્લાઇસ આપવામાં આવી રહ્યાં છો મેમરી ઉપરથી, 519 00:24:03,430 --> 00:24:06,630 થોડી, પછી નીચા પછી કદાચ થોડી નીચલા, તમે malloc કૉલ દર વખતે, 520 00:24:06,630 --> 00:24:10,100 ઢગલો, તે વપરાશ છે, પ્રકારની વધી રહી છે, 521 00:24:10,100 --> 00:24:11,950 શું નજીક વધતી? 522 00:24:11,950 --> 00:24:13,382 આ સ્ટેક. 523 00:24:13,382 --> 00:24:14,840 તેથી આ એક સારો વિચાર જેવી લાગે છે નથી? 524 00:24:14,840 --> 00:24:18,420 525 00:24:18,420 --> 00:24:22,140 તે ખરેખર સ્પષ્ટ નથી જ્યાં હું તેનો અર્થ, તમે બીજું શું કરી શકો તો જ કરી શકો છો 526 00:24:22,140 --> 00:24:23,910 મેમરી એક મર્યાદિત રકમ હોય છે. 527 00:24:23,910 --> 00:24:25,200 પરંતુ આ ચોક્કસ ખરાબ છે. 528 00:24:25,200 --> 00:24:27,920 તે બે તીર પર હોય છે એક બીજા માટે કોર્સ ક્રેશ. 529 00:24:27,920 --> 00:24:31,930 >> અને તે ખરાબ વ્યક્તિ, લોકો જે બહાર વળે પ્રોગ્રામિંગ સાથે ખાસ કરીને સારી છે 530 00:24:31,930 --> 00:24:36,140 અને કમ્પ્યુટર્સ માં હેક કરવાનો પ્રયાસ કરી, આ વાસ્તવિકતા શોષણ કરી શકો છો. 531 00:24:36,140 --> 00:24:38,290 હકીકતમાં, ચાલો એક ઓછી સ્નીપેટ. 532 00:24:38,290 --> 00:24:41,350 તેથી આ તમે વાંચી શકે છે એક ઉદાહરણ છે વિશે વિકિપીડિયા પર વધુ વિગતવાર. 533 00:24:41,350 --> 00:24:43,100 અમે અંતે તમે નિર્દેશ પડશે લેખ તો વિચિત્ર. 534 00:24:43,100 --> 00:24:45,650 પરંતુ એક હુમલો સામાન્ય છે બફર ઓવરફ્લો તરીકે ઓળખાય છે 535 00:24:45,650 --> 00:24:49,570 મનુષ્યો તરીકે લાંબા સમય સુધી અસ્તિત્વમાં છે ચાલાકી કરવાની ક્ષમતા હતી છે 536 00:24:49,570 --> 00:24:53,120 ખાસ કરીને સી કમ્પ્યુટરની મેમરી તેથી આ એક ખૂબ જ મનસ્વી કાર્યક્રમ છે, 537 00:24:53,120 --> 00:24:55,130 પરંતુ નીચે થી ઉપર તે વાંચી દો. 538 00:24:55,130 --> 00:24:57,650 Argc ચાર રચે સ્ટાર argv માં મુખ્ય. 539 00:24:57,650 --> 00:24:59,830 તેથી તે લે છે કે કાર્યક્રમ છે આદેશ વાક્ય દલીલો. 540 00:24:59,830 --> 00:25:03,620 અને બધા મુખ્ય દેખીતી રીતે કોલ કરે છે એક કાર્ય સરળતા માટે એફ કૉલ કરો. 541 00:25:03,620 --> 00:25:04,610 અને તે શું પસાર? 542 00:25:04,610 --> 00:25:05,490 એક argv. 543 00:25:05,490 --> 00:25:09,320 તેથી તે એફ માં પસાર કરે છે ગમે શબ્દ વપરાશકર્તા ટાઇપ છે 544 00:25:09,320 --> 00:25:11,500 પછી પ્રોમ્પ્ટ પર કાર્યક્રમ નામ બધા. 545 00:25:11,500 --> 00:25:15,730 તેથી ખૂબ સીઝર અથવા Vigenere, જેમ જે તમે argv સાથે કરી યાદ શકે છે. 546 00:25:15,730 --> 00:25:16,680 >> તેથી એફ શું છે? 547 00:25:16,680 --> 00:25:19,760 એફ શબ્દમાળા લે તેની એકમાત્ર દલીલ તરીકે, 548 00:25:19,760 --> 00:25:22,100 ઉર્ફ ઘરનાં પરચૂરણ કામો સ્ટાર, જ વસ્તુ, શબ્દમાળા તરીકે. 549 00:25:22,100 --> 00:25:24,920 અને તે આપખુદ કહેવાય છે આ ઉદાહરણમાં બાર. 550 00:25:24,920 --> 00:25:27,710 અને પછી ઘરનાં પરચૂરણ કામો સી 12, માત્ર સામાન્ય માણસ દ્રષ્ટિએ, 551 00:25:27,710 --> 00:25:31,750 અમને માટે કરી ઘરનાં પરચૂરણ કામો સી કૌંસ 12 શું છે? 552 00:25:31,750 --> 00:25:33,440 તે શું છે? 553 00:25:33,440 --> 00:25:36,490 ખાસ કરીને, મેમરી ફાળવણી 12 અક્ષરો 12 બાઇટ્સ. 554 00:25:36,490 --> 00:25:36,990 ચોક્કસ. 555 00:25:36,990 --> 00:25:40,000 અને પછી, છેલ્લી લીટી જગાડવો અને નકલ, તો તમે કદાચ જોઇ ન કર્યા. 556 00:25:40,000 --> 00:25:43,360 આ એક સ્ટ્રિંગ નકલ છે જેની હેતુ જીવનમાં કાર્ય 557 00:25:43,360 --> 00:25:48,160 તેના બીજા દલીલ નકલ કરો તેના પ્રથમ દલીલ માં, 558 00:25:48,160 --> 00:25:51,190 પરંતુ માત્ર એક સુધી બાઇટ્સ ચોક્કસ સંખ્યા. 559 00:25:51,190 --> 00:25:53,860 તેથી ત્રીજા દલીલ કહે છે તમે કેટલા બાઇટ્સ નકલ કરીશું? 560 00:25:53,860 --> 00:25:56,720 બાર લંબાઈ, ગમે ટાઇપ વપરાશકર્તા. 561 00:25:56,720 --> 00:25:59,320 અને સમાવિષ્ટો છે, કે જેઓ શબ્દમાળા બાર 562 00:25:59,320 --> 00:26:02,330 મેમરી નકલ સી પર નિર્દેશ 563 00:26:02,330 --> 00:26:04,060 >> તેથી આ પ્રકારની મૂર્ખ લાગે છે, અને તે છે. 564 00:26:04,060 --> 00:26:06,300 તે contrived ઉદાહરણ છે, પરંતુ તે પ્રતિનિધિના 565 00:26:06,300 --> 00:26:10,100 હુમલો વેક્ટર્સ એક વર્ગ, એક કાર્યક્રમ હુમલો એક માર્ગ. 566 00:26:10,100 --> 00:26:15,050 બધા દંડ અને વપરાશકર્તા તો સારી છે 11 અક્ષરો છે કે એક શબ્દ પ્રકારના 567 00:26:15,050 --> 00:26:18,040 ઓછા વત્તા બેકસ્લેશ શૂન્ય અથવા. 568 00:26:18,040 --> 00:26:22,830 તેના કરતાં માં વપરાશકર્તા પ્રકારો વધુ તો 11 અથવા 12 અથવા 20 અથવા 50 અક્ષરો? 569 00:26:22,830 --> 00:26:25,090 કરવા જઇ આ કાર્યક્રમ શું છે? 570 00:26:25,090 --> 00:26:29,360 સંભવિત ખામી seg. તે ચાલી રહ્યું છે અકારણ ઉપર બાર બધું નકલ કરવા 571 00:26:29,360 --> 00:26:31,750 છે, જે તેના લંબાઈ, શાબ્દિક બાર બધું, 572 00:26:31,750 --> 00:26:36,307 સરનામું માં સી પરંતુ સી પર નિર્દેશ માત્ર preemptively 12 બાઇટ્સ તરીકે આપવામાં આવે છે. 573 00:26:36,307 --> 00:26:37,640 પરંતુ કોઇ વધારાની ચેક છે. 574 00:26:37,640 --> 00:26:38,700 શરતો તો કોઈ છે. 575 00:26:38,700 --> 00:26:40,580 અહીં કોઈ ભૂલ ચકાસણી છે. 576 00:26:40,580 --> 00:26:43,270 >> અને તેથી આ કાર્યક્રમ શું છે કરવા જઇ માત્ર અકારણ છે 577 00:26:43,270 --> 00:26:45,750 અન્ય એક વસ્તુ નકલ કરો. 578 00:26:45,750 --> 00:26:47,880 અને તેથી અમે આ ડ્રો તો એક ચિત્ર તરીકે, અહીં છે 579 00:26:47,880 --> 00:26:49,860 મેમરી જગ્યા માત્ર એક sliver. 580 00:26:49,860 --> 00:26:53,470 તેથી અમે તળિયે નોટિસ સ્થાનિક ચલ બાર છે. 581 00:26:53,470 --> 00:26:57,330 Store-- રહ્યું છે કે કે નિર્દેશક તેથી છે કે સ્થાનિક દલીલ બદલે 582 00:26:57,330 --> 00:26:58,672 શબ્દમાળા બાર સંગ્રહવા માટે જઈ રહી છે. 583 00:26:58,672 --> 00:27:00,380 અને પછી માત્ર નોટિસ તે ઉપર એક સ્ટેક માં, 584 00:27:00,380 --> 00:27:02,505 કારણ કે તમે પૂછો દર વખતે સ્ટેક પર મેમરી માટે, 585 00:27:02,505 --> 00:27:04,310 તે થોડો જાય pictorially તે ઉપર, 586 00:27:04,310 --> 00:27:06,270 આપણે ત્યાં 12 બાઇટ્સ મળી છે કે નોટિસ. 587 00:27:06,270 --> 00:27:10,690 ટોચની ડાબી એક સી કૌંસ શૂન્ય છે અને તળિયે જમણી એક સી કૌંસ 11 છે. 588 00:27:10,690 --> 00:27:12,870 કે જે હમણાં જ કેવી રીતે કમ્પ્યુટર્સ છે તે બહાર મૂકે જવાનું. 589 00:27:12,870 --> 00:27:18,300 તેથી માત્ર તર્ક, બાર વધુ હોય તો સહિત કુલ 12 અક્ષરો કરતાં 590 00:27:18,300 --> 00:27:25,790 આ છે જ્યાં બેકસ્લેશ શૂન્ય, 12 અથવા સી કૌંસ 12 જવા માટે ચાલે? 591 00:27:25,790 --> 00:27:28,440 અથવા બદલે જ્યાં 12 છે અક્ષર અથવા 13 મી પાત્ર, 592 00:27:28,440 --> 00:27:30,900 જઈને સો પાત્ર ચિત્રમાં અંત? 593 00:27:30,900 --> 00:27:33,400 ઉપર અથવા નીચે? 594 00:27:33,400 --> 00:27:36,300 >> અધિકાર, કારણ કે તેમ છતાં સ્ટેક પોતે, ઉપરનું વધે 595 00:27:36,300 --> 00:27:39,590 તમે સામગ્રી મૂકી છે એક વાર તે ડિઝાઇન કારણો માટે, 596 00:27:39,590 --> 00:27:41,294 ટોચ પરથી નીચે મેમરી મૂકે છે. 597 00:27:41,294 --> 00:27:44,460 તમે 12 કરતાં વધુ બાઇટ્સ મળી છે તેથી જો, તમે બાર પર ફરીથી લખી શરૂ કરવા જઈ રહ્યાં છો. 598 00:27:44,460 --> 00:27:47,280 હવે તે એક ભૂલ છે, પરંતુ તે છે ખરેખર એક મોટી સોદો. 599 00:27:47,280 --> 00:27:51,130 કારણ કે ત્યાં પરંતુ તે એક મોટો સોદો છે, મેમરી પર જવા વધુ સામગ્રી. 600 00:27:51,130 --> 00:27:53,074 તેથી અહીં અમે કેવી રીતે કદાચ છે સ્પષ્ટ કરવા, હેલો મૂકો. 601 00:27:53,074 --> 00:27:54,490 હું પ્રોમ્પ્ટ પર હેલો માં લખ્યો છે. 602 00:27:54,490 --> 00:27:59,330 એચ ઇ એલ એલ ઓ બેકસ્લેશ શૂન્ય, અંદર અંત થાય છે તે 12 બાઇટ્સ, અને અમે સુપર સુરક્ષિત છો. 603 00:27:59,330 --> 00:28:00,330 બધું બરાબર છે. 604 00:28:00,330 --> 00:28:03,020 પરંતુ હું કંઈક લખો તો લાંબા સમય સુધી, તે સંભવિત છે 605 00:28:03,020 --> 00:28:05,860 બાર જગ્યા માં સળવળવું જઈ રહી છે. 606 00:28:05,860 --> 00:28:08,405 પરંતુ ખરાબ હજુ સુધી, તે કરે છે આ બધા સમય બહાર, 607 00:28:08,405 --> 00:28:11,530 અમે વિશે વાત કરી ક્યારેય કર્યું છે, તેમ છતાં તે સ્ટેક અન્ય સામગ્રી માટે વપરાય છે. 608 00:28:11,530 --> 00:28:13,560 તે માત્ર સ્થાનિક ચલો નથી. 609 00:28:13,560 --> 00:28:15,100 >> સી ખૂબ નીચા સ્તર ભાષા છે. 610 00:28:15,100 --> 00:28:17,810 અને તે પ્રકારના ગુપ્ત પણ સ્ટેક વાપરે 611 00:28:17,810 --> 00:28:21,260 જ્યારે યાદ કરવા માટે એક કાર્ય શું કહે છે 612 00:28:21,260 --> 00:28:26,040 સરનામું છે, જે અગાઉના કાર્ય છે તેથી તે તે કાર્ય કરવા માટે કૂદી શકે છે. 613 00:28:26,040 --> 00:28:29,980 તેથી મુખ્ય કોલ્સ વચ્ચે સ્વેપ જ્યારે વસ્તુઓ સ્ટેક પર દબાણ 614 00:28:29,980 --> 00:28:34,380 છે માત્ર સ્થાનિક ચલો અદલબદલ નથી અથવા તેના દલીલો, પણ ગુપ્ત દબાણ 615 00:28:34,380 --> 00:28:37,510 સ્ટેક પર રજૂ અહીં લાલ સ્લાઇસ દ્વારા, 616 00:28:37,510 --> 00:28:40,520 મુખ્ય સરનામું શારીરિક છે તમારા કમ્પ્યુટરની મેમરી છે, 617 00:28:40,520 --> 00:28:44,180 કે જેથી સ્વેપ કરવામાં આવે છે ત્યારે, કમ્પ્યુટર હું મુખ્ય પાછા જવાની જરૂર જાણે છે 618 00:28:44,180 --> 00:28:46,760 અને મુખ્ય કાર્ય ચલાવવા સમાપ્ત કરો. 619 00:28:46,760 --> 00:28:51,960 તેથી આ હવે ખતરનાક છે, કારણ કે જો હેલો કરતાં વધુ સારી રીતે વધુ માં વપરાશકર્તા પ્રકારો, 620 00:28:51,960 --> 00:28:57,030 વપરાશકર્તાની ઇનપુટ clobbers જેમ કે અથવા, કે લાલ વિભાગ પર ફરીથી લખે છે 621 00:28:57,030 --> 00:28:59,820 તાર્કિક તો કમ્પ્યુટરની માત્ર અકારણ ધારણ જાઉં 622 00:28:59,820 --> 00:29:03,830 કે લાલ સ્લાઇસ બાઇટ્સ છે કે તે પાછા જોઈએ જે સરનામું, 623 00:29:03,830 --> 00:29:09,020 શત્રુ શું છે, તો પૂરતી સ્માર્ટ અથવા બાઇટ્સ ક્રમ મૂકવા માટે પૂરતી નસીબદાર 624 00:29:09,020 --> 00:29:13,450 ત્યાં એક સરનામું જેવી લાગે છે કે, પરંતુ તે કોડ સરનામું 625 00:29:13,450 --> 00:29:18,730 તે અથવા તેણી કમ્પ્યુટર માંગે છે કે તેના બદલે મુખ્ય ચલાવવા માટે? 626 00:29:18,730 --> 00:29:21,670 >> બીજા શબ્દોમાં કહીએ તો, શું જો વપરાશકર્તા પ્રોમ્પ્ટ પર લખીને છે 627 00:29:21,670 --> 00:29:23,850 માત્ર કંઈક નથી હેલો, નિરુપદ્રવી જેવા 628 00:29:23,850 --> 00:29:28,210 પરંતુ તે સમકક્ષ છે કે કોડ કે જે ખરેખર છે આ બધા વપરાશકર્તા ફાઈલો કાઢી નાખવા માટે? 629 00:29:28,210 --> 00:29:30,060 અથવા મને તેમના પાસવર્ડ ઇમેઇલ? 630 00:29:30,060 --> 00:29:31,940 અથવા લોગીંગ શરૂ તેમના કીસ્ટ્રોક, અધિકાર? 631 00:29:31,940 --> 00:29:34,920 એક માર્ગ છે, આજે નિયત દો તેઓ હેલો માત્ર લખો શકે છે 632 00:29:34,920 --> 00:29:36,711 વિશ્વ અથવા તેમના નામ, તેઓ અનિવાર્યપણે શકે 633 00:29:36,711 --> 00:29:39,570 કોડ છે, zeros પાસ અને રાશિઓ, કે કમ્પ્યુટર 634 00:29:39,570 --> 00:29:43,450 કોડ અને સરનામું બંને માટે ભૂલો. 635 00:29:43,450 --> 00:29:48,950 જોકે તેથી અંશે અમૂર્ત, તો પૂરતી વિરોધી કોડ વપરાશકર્તા પ્રકારો 636 00:29:48,950 --> 00:29:52,330 અમે અહીં સામાન્ય પડશે કે એ એક હુમલો અથવા પ્રતિસ્પર્ધકો છે. 637 00:29:52,330 --> 00:29:53,140 તેથી માત્ર ખરાબ સામગ્રી. 638 00:29:53,140 --> 00:29:55,306 અમે વિશે કાળજી નથી નંબરો અથવા zeros અથવા મુદ્દાઓ 639 00:29:55,306 --> 00:29:59,470 આજે, તમે આવા અંત કે કે લાલ વિભાગ પર ફરીથી લખી, 640 00:29:59,470 --> 00:30:01,580 બાઇટ્સ કે ક્રમ નોટિસ. 641 00:30:01,580 --> 00:30:05,020 ઓ 835 સી શૂન્ય આઠ શૂન્ય. 642 00:30:05,020 --> 00:30:08,960 અને હવે અહીં વિકિપીડિયા લેખ તરીકે તમે હવે ખરેખર શરૂ કરો, તો પ્રસ્તાવ મૂક્યો છે 643 00:30:08,960 --> 00:30:12,460 તમારા કમ્પ્યુટર માં બાઇટ્સ લેબલિંગ મેમરી વિકિપીડિયાનો લેખ શું છે 644 00:30:12,460 --> 00:30:19,060 પ્રસ્તાવ છે, કે શું સરનામું તો કે ટોચ ડાબી બાઇટ 80 સી 0 3508 છે. 645 00:30:19,060 --> 00:30:22,200 >> બીજા શબ્દોમાં કહીએ તો, ખરાબ વ્યક્તિ છે તો તેના અથવા તેણીના કોડ સાથે પૂરતી સ્માર્ટ 646 00:30:22,200 --> 00:30:26,650 ખરેખર અહીં એક નંબર મૂકી કે કોડ સરનામા માટે અનુલક્ષે 647 00:30:26,650 --> 00:30:29,180 તે અથવા તેણી ઇન્જેક્ટ કમ્પ્યુટર માં, તમે 648 00:30:29,180 --> 00:30:31,050 કમ્પ્યુટર ટ્રીક કરી શકો છો કંઇ કરવાનું માં. 649 00:30:31,050 --> 00:30:34,140 ફાઈલો દૂર કરી રહ્યા છીએ ઇમેઇલ વસ્તુઓ તમારા ટ્રાફિક સુંઘવાનું, 650 00:30:34,140 --> 00:30:36,710 શાબ્દિક કંઈપણ હોઈ શકે છે કમ્પ્યુટર માં ઇન્જેક્ટ. 651 00:30:36,710 --> 00:30:39,220 અને તેથી એક બફર ઓવરફ્લો તેના કોર પર હુમલો 652 00:30:39,220 --> 00:30:43,530 માત્ર એક મૂર્ખ મૂર્ખ છે એક એરે ફરીથી લખવાનું કે 653 00:30:43,530 --> 00:30:45,840 તેની સરહદોની ચકાસાયેલ નથી. 654 00:30:45,840 --> 00:30:48,850 અને આ સુપર ખતરનાક શું છે અને સાથે સાથે સુપર શક્તિશાળી 655 00:30:48,850 --> 00:30:52,560 સી અમે ખરેખર હોય છે મેમરી ગમે ત્યાં ઍક્સેસ કરો. 656 00:30:52,560 --> 00:30:55,320 તે અમને અપ છે, પ્રોગ્રામરો, જે મૂળ કોડ લખવા 657 00:30:55,320 --> 00:30:59,330 કોઇ રફૂ લંબાઈ ચકાસવા અમે હેરફેર કરી રહ્યાં છો કે એરે. 658 00:30:59,330 --> 00:31:00,750 તેથી સ્પષ્ટ કરવા, સુધારો શું છે? 659 00:31:00,750 --> 00:31:03,190 અમે આ માટે પાછા રોલ કોડ છે, હું નથી કરીશું 660 00:31:03,190 --> 00:31:08,000 બાર લંબાઈ બદલવા માટે, શું બીજું હું તપાસ થવી જોઈએ? 661 00:31:08,000 --> 00:31:10,620 બીજું શું હું આમ જોઇએ સંપૂર્ણપણે આ હુમલા અટકાવવા? 662 00:31:10,620 --> 00:31:14,110 હું માત્ર અકારણ કહેવા માગો છો નથી જો તમે તરીકે ઘણા બાઇટ્સ નકલ કરીશું કે 663 00:31:14,110 --> 00:31:16,140 તરીકે બાર લંબાઈ છે. 664 00:31:16,140 --> 00:31:18,910 હું નકલ કહેવા માગો છો ઘણા બાઇટ્સ બાર છે 665 00:31:18,910 --> 00:31:24,090 ફાળવેલ સુધી મેમરી, અથવા વધુમાં 12. 666 00:31:24,090 --> 00:31:27,450 તેથી હું શરત તો અમુક પ્રકારની જરૂર કે બાર લંબાઈ તપાસ કરે છે, 667 00:31:27,450 --> 00:31:32,800 પરંતુ તે 12, અમે હમણાં જ હાર્ડ કોડ કરતા વધી ગયો છે તો મહત્તમ શક્ય અંતર તરીકે 12. 668 00:31:32,800 --> 00:31:35,910 નહિંતર કહેવાતા બફર ઓવરફ્લો હુમલો થઇ શકે છે. 669 00:31:35,910 --> 00:31:38,451 તે સ્લાઇડ્સ તળિયે, તમે વધુ વાંચવા માટે વિચિત્ર છો, તો 670 00:31:38,451 --> 00:31:41,200 વાસ્તવિક મૂળ લેખ છે તમે એક નજર કરવા માંગો છો. 671 00:31:41,200 --> 00:31:44,550 >> પરંતુ હવે, ભાવમાં વચ્ચે બિનકાર્યક્ષમતાને અહીં હતી ચૂકવવામાં આવે છે. 672 00:31:44,550 --> 00:31:46,680 તેથી કે જે ઝડપી હતી નીચા સ્તર શું જોવા 673 00:31:46,680 --> 00:31:49,709 સમસ્યાઓ કે અમે હવે પણ સર્જાઈ શકે છે કમ્પ્યુટરની મેમરી વપરાશ હોય છે. 674 00:31:49,709 --> 00:31:51,750 પરંતુ અન્ય સમસ્યા અમે પહેલેથી જ સોમવારે stumbled 675 00:31:51,750 --> 00:31:53,800 માત્ર બિનકાર્યક્ષમતા હતો એક કડી થયેલ યાદી છે. 676 00:31:53,800 --> 00:31:56,019 અમે પાછા રેખીય સમય છે. 677 00:31:56,019 --> 00:31:57,560 અમે લાંબા સમય સુધી સંલગ્ન એરે હોય છે. 678 00:31:57,560 --> 00:31:58,980 અમે રેન્ડમ એક્સેસ નથી. 679 00:31:58,980 --> 00:32:00,710 અમે ચોરસ કૌંસ નોટેશનમાં ઉપયોગ કરી શકતા નથી. 680 00:32:00,710 --> 00:32:04,590 અમે શાબ્દિક જ્યારે લૂપ ઉપયોગ કરે છે એક જેમ હું એક ક્ષણ પહેલા લખ્યું હતું. 681 00:32:04,590 --> 00:32:09,740 પરંતુ સોમવારે, અમે કરી શકો છો દાવો કર્યો હતો કે કાર્યક્ષમતા ના ક્ષેત્ર માં પાછા સળવળવું 682 00:32:09,740 --> 00:32:13,040 કંઈક કે જે હાંસલ લઘુગુણકીય કદાચ, અથવા શ્રેષ્ઠ હજુ સુધી, 683 00:32:13,040 --> 00:32:16,120 કે કદાચ કંઈક સતત સમય જેથી-કહેવાય છે. 684 00:32:16,120 --> 00:32:19,840 તેથી અમે દ્વારા આ નવા ઉપયોગ કેવી રીતે કરી શકો છો સાધનો, આ સરનામાં, આ પોઇંટરો, 685 00:32:19,840 --> 00:32:22,210 અને અમારી પોતાની વસ્તુઓ threading? 686 00:32:22,210 --> 00:32:23,960 ઠીક છે, કે ધારવું અહીં, આ એક ટોળું છે 687 00:32:23,960 --> 00:32:27,170 અમે એક સંગ્રહ કરવા માંગો છો કે જે નંબરો અસરકારક રીતે માહિતી બંધારણ અને શોધો. 688 00:32:27,170 --> 00:32:30,960 અમે સંપૂર્ણપણે સપ્તાહ રીવાઇન્ડ કરી શકો છો બે, એક એરે માં આ ફેંકવું 689 00:32:30,960 --> 00:32:33,150 અને બાઈનરી શોધ ઉપયોગ કરીને તેમને શોધો. 690 00:32:33,150 --> 00:32:34,040 વિભાજીત અને જીતી. 691 00:32:34,040 --> 00:32:37,720 અને હકીકતમાં તમે લખ્યું PSET3 દ્વિસંગી શોધ, 692 00:32:37,720 --> 00:32:40,100 જ્યાં તમે શોધો કાર્યક્રમ અમલમાં મૂકી. 693 00:32:40,100 --> 00:32:40,890 પરંતુ તમે શું ખબર. 694 00:32:40,890 --> 00:32:45,060 વધુ પ્રકારની છે આમ હોંશિયાર રસ્તો. 695 00:32:45,060 --> 00:32:47,390 તે થોડું વધુ છે આધુનિક અને તે કદાચ 696 00:32:47,390 --> 00:32:50,830 શા માટે આપણા પર બાઈનરી જોવા માટે પરવાનગી આપે શોધ તેથી ખૂબ ઝડપથી છે. 697 00:32:50,830 --> 00:32:52,980 પ્રથમ, ચાલો પરિચય દો એક વૃક્ષ ની કલ્પના. 698 00:32:52,980 --> 00:32:54,730 જે પણ છતાં વાસ્તવિકતા વૃક્ષો પ્રકારની 699 00:32:54,730 --> 00:32:57,730 કમ્પ્યુટર વિશ્વમાં, આ જેમ વધવા તેઓ પ્રકારની નીચામાં વધવા વિજ્ઞાન 700 00:32:57,730 --> 00:33:00,830 તમે હોય છે, જ્યાં કુટુંબ વૃક્ષ, જેવા તમારા દાદા દાદી અથવા મહાન દાદા દાદી 701 00:33:00,830 --> 00:33:04,580 અથવા whatnot ટોચ વડા અને પરિવાર Matriarch, માત્ર એક 702 00:33:04,580 --> 00:33:07,930 રુટ નોડ, નીચે કહેવાતા તેના બાળકો જે છે, 703 00:33:07,930 --> 00:33:11,442 જે નીચે તેના બાળકો છે, અથવા તેના વંશજો વધુ સામાન્ય. 704 00:33:11,442 --> 00:33:13,400 અને કોઈપણ અટકી કુટુંબ તળિયે 705 00:33:13,400 --> 00:33:16,070 વૃક્ષ હોવા ઉપરાંત કુટુંબ યુવાન, 706 00:33:16,070 --> 00:33:19,520 પણ માત્ર સામાન્ય હોઈ શકે છે વૃક્ષ પાંદડા કહેવામાં આવે છે. 707 00:33:19,520 --> 00:33:21,800 >> તેથી આ માત્ર એક ટોળું છે શબ્દો અને વ્યાખ્યાઓ 708 00:33:21,800 --> 00:33:25,790 કંઈક માટે કમ્પ્યુટર એક વૃક્ષ કહેવાય વિજ્ઞાન, પરિવાર વૃક્ષ જેવી જ. 709 00:33:25,790 --> 00:33:28,770 પરંતુ પારખુ અવતારોમાં છે વૃક્ષો, જે એક 710 00:33:28,770 --> 00:33:30,780 દ્વિસંગી શોધ વૃક્ષ કહેવાય છે. 711 00:33:30,780 --> 00:33:34,380 અને તમે કરી શકો છો પીંજવું કાઇન્ડ આ વસ્તુ નથી સિવાય છે. 712 00:33:34,380 --> 00:33:37,180 વેલ, તે કયા અર્થમાં બાઈનરી છે? 713 00:33:37,180 --> 00:33:41,455 જ્યાં બાઈનરી અહીં ક્યાંથી આવે છે? 714 00:33:41,455 --> 00:33:41,955 માફ કરશો? 715 00:33:41,955 --> 00:33:45,961 716 00:33:45,961 --> 00:33:47,210 તે ખૂબ જ એક અથવા નથી. 717 00:33:47,210 --> 00:33:52,000 તે ગાંઠો દરેક કોઈ છે કે વધુ છે બે કરતાં વધુ બાળકો, આપણે અહીં જુઓ. 718 00:33:52,000 --> 00:33:54,990 સામાન્ય રીતે, એક વૃક્ષ અને તમારા માતા-પિતા અને દાદા દાદી 719 00:33:54,990 --> 00:33:57,640 ઘણા બાળકો હોય શકે છે અથવા grandkids તેઓ ખરેખર કરવા માંગો છો, 720 00:33:57,640 --> 00:34:00,820 અને તેથી દાખલા તરીકે ત્યાં અમે ત્રણ હોય કે જમણી બાજુ નોડ બંધ બાળકો, 721 00:34:00,820 --> 00:34:05,480 પરંતુ એક દ્વિસંગી વૃક્ષ, એક નોડ છે વધુમાં શૂન્ય, એક, બે કે ત્રણ બાળકો. 722 00:34:05,480 --> 00:34:08,496 અને તે એક સરસ મિલકત છે તે બે દ્વારા આવ્યાં છે, કારણ કે જો, 723 00:34:08,496 --> 00:34:10,620 અમે સમક્ષ રજુ કરવાનો પ્રયત્ન જઈ રહ્યાં છો થોડી લોગ આધાર વિચાર બે 724 00:34:10,620 --> 00:34:11,975 ક્રિયા અહીં આખરે પર જઈ રહી છે. 725 00:34:11,975 --> 00:34:13,350 તેથી અમે લઘુગુણકીય કંઈક છે. 726 00:34:13,350 --> 00:34:14,558 પરંતુ એક ક્ષણ કે પર વધુ. 727 00:34:14,558 --> 00:34:19,810 શોધ વૃક્ષ નંબરો છે કે જે થાય છે વ્યવસ્થા જેમ કે ડાબી બાળકની 728 00:34:19,810 --> 00:34:22,429 કિંમત રુટ કરતા વધારે છે. 729 00:34:22,429 --> 00:34:26,010 અને તેના અધિકાર બાળક છે રુટ કરતાં મોટા. 730 00:34:26,010 --> 00:34:29,290 બીજા શબ્દોમાં કહીએ તો, તમે કોઇ લેવા તો ગાંઠો, આ ચિત્ર માં વર્તુળો, 731 00:34:29,290 --> 00:34:31,840 અને તેની ડાબી પર દેખાય છે બાળક અને તેના અધિકાર બાળક, 732 00:34:31,840 --> 00:34:34,739 પ્રથમ, કરતાં ઓછી હોવી જોઈએ બીજા કરતાં વધારે પ્રયત્ન કરીશું. 733 00:34:34,739 --> 00:34:36,159 તેથી સેનીટી 55 તપાસો. 734 00:34:36,159 --> 00:34:37,780 તે બાળકને છોડી 33 છે. 735 00:34:37,780 --> 00:34:38,620 તે કરતાં ઓછી છે. 736 00:34:38,620 --> 00:34:40,929 55, તેના અધિકાર બાળક 77 છે. 737 00:34:40,929 --> 00:34:41,783 તે કરતાં વધુ છે. 738 00:34:41,783 --> 00:34:43,199 અને તે ફરી યાદ આવવું વ્યાખ્યા છે. 739 00:34:43,199 --> 00:34:46,480 અમે તે દરેક એક તપાસ કરી શકે છે ગાંઠો અને પકડી શકે છે તે જ પેટર્ન. 740 00:34:46,480 --> 00:34:49,389 >> તેથી સરસ શું છે દ્વિસંગી શોધ વૃક્ષ છે, 741 00:34:49,389 --> 00:34:52,204 એક કે, અમે તેને અમલમાં મૂકી શકે છે એક સ્ટ્રક્ટ સાથે, માત્ર આ ગમે છે. 742 00:34:52,204 --> 00:34:54,620 અને અમે ફેંકવાની કરી રહ્યાં છો, તેમ છતાં તમારા પર માળખાં ઘણાં બધાં, 743 00:34:54,620 --> 00:34:56,560 તેઓ કંઈક છો સાહજિક હવે આસ્થાપૂર્વક. 744 00:34:56,560 --> 00:35:00,570 વાક્યરચના, હજુ પણ ખાતરી કરો કે માટે arcane છે પરંતુ આ નોડ સમાવિષ્ટો 745 00:35:00,570 --> 00:35:02,786 context-- અને અમે રાખવા શબ્દ નોડ ઉપયોગ કરીને, 746 00:35:02,786 --> 00:35:04,910 તે એક લંબચોરસ છે કે શું સ્ક્રીન અથવા એક વર્તુળ પર, 747 00:35:04,910 --> 00:35:08,970 તે માત્ર કેટલાક સામાન્ય કન્ટેનર છે એક જેવી વૃક્ષ આ કિસ્સામાં, 748 00:35:08,970 --> 00:35:11,780 અમે પૂર્ણાંક જરૂર છે, જોયું ગાંઠો દરેક 749 00:35:11,780 --> 00:35:15,460 અને પછી હું બે પોઇન્ટર પોઇન્ટ જરૂર ડાબી બાળક અને જમણી બાળક માટે, 750 00:35:15,460 --> 00:35:16,590 અનુક્રમે. 751 00:35:16,590 --> 00:35:20,730 કે તેથી અમે કેવી રીતે કરી શકે છે એક સ્ટ્રક્ટ કે અમલ. 752 00:35:20,730 --> 00:35:22,315 અને હું કેવી રીતે કોડ અમલ કરી શકે છે? 753 00:35:22,315 --> 00:35:26,730 વેલ, ઝડપી લેવા દો આ નાના ઉદાહરણ જુઓ. 754 00:35:26,730 --> 00:35:29,820 તે કાર્યલક્ષી, નથી પરંતુ હું કર્યું નકલ અને તે માળખું પેસ્ટ. 755 00:35:29,820 --> 00:35:33,510 અને જો બાઈનરી મારા કાર્ય શોધ વૃક્ષ, શોધ કહેવામાં આવે છે 756 00:35:33,510 --> 00:35:36,980 અને આ બે દલીલો લે છે, પૂર્ણાંક N અને નિર્દેશક 757 00:35:36,980 --> 00:35:41,400 વૃક્ષ નોડ છે, તેથી નિર્દેશક અથવા એક વૃક્ષ રુટ પર એક નિર્દેશક, 758 00:35:41,400 --> 00:35:43,482 હું કેવી રીતે N માટે શોધ વિશે જાઓ છો? 759 00:35:43,482 --> 00:35:45,440 વેલ, પ્રથમ, હું છું કારણ કે પોઇન્ટર સાથે વ્યવહાર, 760 00:35:45,440 --> 00:35:46,750 હું એક સેનીટી ચેક કરવા જઇ રહ્યો છું. 761 00:35:46,750 --> 00:35:54,279 વૃક્ષ સમકક્ષ નલ સમકક્ષ હોય, એન આ વૃક્ષ કે આ વૃક્ષ? 762 00:35:54,279 --> 00:35:55,070 તે હક, ન હોઈ શકે? 763 00:35:55,070 --> 00:35:56,870 હું નલ ભૂતકાળ છું તો, ત્યાં કશું જ નથી. 764 00:35:56,870 --> 00:35:59,230 હું કદાચ તેમજ માત્ર અકારણ ખોટા પાછા કહે છે. 765 00:35:59,230 --> 00:36:04,050 તમે મને કશું આપો તો હું ચોક્કસ નથી કરી શકો છો કોઈપણ નંબર એન શોધવા બીજું તેથી શું હું કદાચ 766 00:36:04,050 --> 00:36:04,750 હવે છો? 767 00:36:04,750 --> 00:36:12,830 હું સારી રીતે બીજું જો n એ કહેવું જાઉં છું વૃક્ષ નોડ છે ગમે કરતાં ઓછી 768 00:36:12,830 --> 00:36:16,300 હું એ કિંમત સોંપી દેવામાં કર્યું છે. 769 00:36:16,300 --> 00:36:20,270 બીજા શબ્દોમાં કહીએ તો, નંબર હું છું તો એન, માટે જોઈ, નોડ કરતાં ઓછી છે 770 00:36:20,270 --> 00:36:21,340 હું જોઈ રહ્યો છું કે. 771 00:36:21,340 --> 00:36:23,190 અને નોડ હું શોધી રહ્યો છું વૃક્ષ કહે છે અંતે, 772 00:36:23,190 --> 00:36:26,370 અને અગાઉના ઉદાહરણ પરથી યાદ નિર્દેશક કિંમત પર મેળવવા માટે, 773 00:36:26,370 --> 00:36:28,310 હું તીર સંકેત ઉપયોગ કરે છે. 774 00:36:28,310 --> 00:36:35,960 એન વૃક્ષ તીર કરતાં ઓછી હોય છે, તેથી જો એન, હું સરળ ડાબી જવા માંગો છો. 775 00:36:35,960 --> 00:36:38,590 હું કેવી રીતે છોડી રહ્યા છો વ્યક્ત નથી? 776 00:36:38,590 --> 00:36:41,560 આ છે, તો સ્પષ્ટ છે પ્રશ્ન માં ચિત્ર, 777 00:36:41,560 --> 00:36:44,612 અને હું પસાર કરવામાં આવ્યા છે સર્વોચ્ચ કે કે નીચે તરફ પોઇન્ટ તીર. 778 00:36:44,612 --> 00:36:45,570 તે મારા વૃક્ષ નિર્દેશક છે. 779 00:36:45,570 --> 00:36:48,060 હું વૃક્ષની રુટ નિર્દેશ કરતી છું. 780 00:36:48,060 --> 00:36:52,100 અને હું માટે કહે છે શોધી રહ્યો છું આપખુદ નંબર 44. 781 00:36:52,100 --> 00:36:55,300 છે તેના કરતા 44 ઓછી અથવા દેખીતી રીતે 55 કરતાં વધારે? 782 00:36:55,300 --> 00:36:56,360 તેથી તે કરતાં ઓછી છે. 783 00:36:56,360 --> 00:36:58,760 અને તેથી આ તો શરત લાગુ પડે છે. 784 00:36:58,760 --> 00:37:03,981 તેથી કલ્પનાત્મક રીતે, હું શું કરવા માંગો છો હું 44 શોધી રહ્યો છું, તો આગામી શોધ? 785 00:37:03,981 --> 00:37:04,480 અરે વાહ? 786 00:37:04,480 --> 00:37:08,310 787 00:37:08,310 --> 00:37:11,100 >> બરાબર, હું કરવા માંગો છો ડાબી બાળક, શોધો 788 00:37:11,100 --> 00:37:12,789 અથવા આ ચિત્ર ડાબી પેટા વૃક્ષ. 789 00:37:12,789 --> 00:37:14,830 અને હકીકતમાં, મને મારફતે દો અહીં નીચે ચિત્ર 790 00:37:14,830 --> 00:37:17,770 માત્ર એક ક્ષણ માટે, કારણ કે હું આ બહાર ખંજવાળી શકતા નથી. 791 00:37:17,770 --> 00:37:21,150 હું 55 અહીં શરૂ કરવા માટે, અને જો મને ખબર છે કે આ કિંમત 44 792 00:37:21,150 --> 00:37:23,180 છે હું શોધી રહ્યો છું ડાબી, તે પ્રકારની છે 793 00:37:23,180 --> 00:37:26,010 માં ફોન પુસ્તક જબરદસ્ત જેવા અડધા અથવા અડધા વૃક્ષ જબરદસ્ત. 794 00:37:26,010 --> 00:37:29,660 હું લાંબા સમય સુધી વિશે કાળજી હોય છે વૃક્ષ આ સમગ્ર અડધા. 795 00:37:29,660 --> 00:37:33,270 અને હજુ સુધી, જિજ્ઞાસાપૂર્વક દ્રષ્ટિએ માળખું, અહીં પર આ વસ્તુ 796 00:37:33,270 --> 00:37:36,682 33 સાથે શરૂ થાય છે પોતે કે દ્વિસંગી શોધ વૃક્ષ છે. 797 00:37:36,682 --> 00:37:39,890 હું કારણ કે પહેલાં શબ્દ યાદ આવવું જણાવ્યું હતું કે ખરેખર આ માહિતી માળખું છે કે 798 00:37:39,890 --> 00:37:41,707 વ્યાખ્યા દ્વારા ફરી યાદ આવવું છે. 799 00:37:41,707 --> 00:37:44,540 તમે આ છે કે એક વૃક્ષ પડી શકે છે મોટા, પરંતુ તેના બાળકો દર એક 800 00:37:44,540 --> 00:37:46,870 નાના થોડી એક વૃક્ષ રજૂ કરે છે. 801 00:37:46,870 --> 00:37:50,910 તેના બદલે તે દાદા હોવા અથવા ગ્રાન્ડમા, હવે તે માત્ર Mom છે 802 00:37:50,910 --> 00:37:54,300 or-- હું Mom નથી કહેવું નથી કરી શકો છો અથવા પિતા, તે વિચિત્ર હશે. 803 00:37:54,300 --> 00:37:59,000 ત્યાં તેના બદલે બે બાળકો ભાઈ અને બહેન જેવી હશે. 804 00:37:59,000 --> 00:38:01,120 કુટુંબ વૃક્ષ એક નવી પેઢી. 805 00:38:01,120 --> 00:38:02,900 પરંતુ માળખાકીય, તે જ વિચાર છે. 806 00:38:02,900 --> 00:38:06,790 અને તે હું એક કાર્ય છે બહાર વળે જેની સાથે હું દ્વિસંગી શોધ શોધ કરી શકો છો 807 00:38:06,790 --> 00:38:07,290 વૃક્ષ. 808 00:38:07,290 --> 00:38:08,680 તે શોધ કહેવામાં આવે છે. 809 00:38:08,680 --> 00:38:17,870 હું વૃક્ષ તીર ડાબી n એ શોધવા એન કિંમત કરતાં વધારે બીજું તો 810 00:38:17,870 --> 00:38:18,870 કે હું હાલમાં છું. 811 00:38:18,870 --> 00:38:20,800 એક ક્ષણ પહેલા વાર્તા 55. 812 00:38:20,800 --> 00:38:23,780 એક હું કહેવાય કાર્ય છે શોધ કે હું માત્ર કરી શકો છો 813 00:38:23,780 --> 00:38:29,660 એન આ પસાર અને પુનરાવર્તિત શોધવા પેટા વૃક્ષ અને માત્ર વળતર 814 00:38:29,660 --> 00:38:30,620 ગમે તે જવાબ. 815 00:38:30,620 --> 00:38:33,530 બાકી હું અહીં કેટલાક અંતિમ આધાર કેસ મળી છે. 816 00:38:33,530 --> 00:38:35,310 >> અંતિમ કેસ શું છે? 817 00:38:35,310 --> 00:38:36,570 વૃક્ષ ક્યાં નલ છે. 818 00:38:36,570 --> 00:38:39,980 હું ક્યાં શોધી રહ્યો છું કિંમત છે તે કરતાં તે કરતાં ઓછી અથવા વધારે 819 00:38:39,980 --> 00:38:42,610 અથવા તે સમાન. 820 00:38:42,610 --> 00:38:44,750 અને હું સમાન કહી શકે સમાન છે, પરંતુ તાર્કિક તે 821 00:38:44,750 --> 00:38:46,500 માત્ર અહીં બીજું કહેતા કે સમકક્ષ. 822 00:38:46,500 --> 00:38:49,150 તેથી સાચા હું કંઈક શોધવા કેવી રીતે છે. 823 00:38:49,150 --> 00:38:51,710 તેથી આશા છે કે આ એક છે પણ વધુ આકર્ષક ઉદાહરણ 824 00:38:51,710 --> 00:38:54,900 મૂર્ખ સિગ્મા કાર્ય કરતાં અમે પાછા થોડા વ્યાખ્યાન કર્યું 825 00:38:54,900 --> 00:38:58,360 જ્યાં તે લૂપ વાપરવા માટે માત્ર સરળ હતું એક ના તમામ નંબરો ગણતરી માટે 826 00:38:58,360 --> 00:39:02,390 એ માહિતી બંધારણ સાથે અહીં એન પોતે પુનરાવર્તિત છે કે 827 00:39:02,390 --> 00:39:07,050 આપણે હવે વ્યાખ્યાયિત કરે છે અને પુનરાવર્તિત દોરવામાં જાતને વ્યક્ત કરવા માટે ક્ષમતા હોય છે 828 00:39:07,050 --> 00:39:09,780 કોડ પોતે ફરી યાદ આવવું છે છે. 829 00:39:09,780 --> 00:39:12,580 તેથી આ અહીં ચોક્કસ જ કોડ છે. 830 00:39:12,580 --> 00:39:14,400 >> તેથી અમે શું અન્ય સમસ્યાઓ હલ કરી શકો છો? 831 00:39:14,400 --> 00:39:18,160 દૂર જેથી ઝડપી પગલું માત્ર એક ક્ષણ માટે વૃક્ષો. 832 00:39:18,160 --> 00:39:20,130 અહીં છે, જર્મન ધ્વજ કહે છે. 833 00:39:20,130 --> 00:39:22,020 અને સ્પષ્ટ છે એક આ ધ્વજ પેટર્ન. 834 00:39:22,020 --> 00:39:23,811 ઘણાં બધાં છે વિશ્વમાં ફ્લેગ્સ કે 835 00:39:23,811 --> 00:39:27,560 દ્રષ્ટિએ આ તરીકે સરળ છે તેમના રંગો અને દાખલાની. 836 00:39:27,560 --> 00:39:31,930 પરંતુ આ એક તરીકે સંગ્રહાયેલ છે કે જે ધારવું .gif અથવા કોઈ JPEG, અથવા બીટમેપ, અથવા એક Ping, 837 00:39:31,930 --> 00:39:34,240 કોઈપણ ગ્રાફિકવાળા ફાઈલ બંધારણમાં જેની સાથે તમે પરિચિત છો 838 00:39:34,240 --> 00:39:36,460 અમે છો, જે કેટલાક pset4 સાથે રમે છે. 839 00:39:36,460 --> 00:39:41,550 આ સ્ટોર કરવા માટે યોગ્ય લાગતું નથી બ્લેક પિક્સેલ, બ્લેક પિક્સેલ, બ્લેક પિક્સેલ, 840 00:39:41,550 --> 00:39:44,790 ડોટ, ડોટ, કોઈ, એક સમગ્ર ટોળું પ્રથમ scanline માટે કાળા પિક્સેલ્સ, 841 00:39:44,790 --> 00:39:47,430 અથવા પંક્તિ, તો પછી સમગ્ર ટોળું એ જ, તો પછી સમગ્ર ટોળું 842 00:39:47,430 --> 00:39:49,530 પછી એ જ છે, અને લાલ પિક્સેલ્સ સમગ્ર ટોળું 843 00:39:49,530 --> 00:39:53,020 લાલ પિક્સેલ્સ, લાલ પિક્સેલ્સ, પછી સમગ્ર પીળા પીળા પિક્સેલ્સ ટોળું, અધિકાર? 844 00:39:53,020 --> 00:39:55,050 >> આવા બિનકાર્યક્ષમતા અહીં છે. 845 00:39:55,050 --> 00:39:59,040 કેવી રીતે તર્ક તમે કરશે જર્મન ધ્વજ સંકુચિત 846 00:39:59,040 --> 00:40:01,320 ફાઇલ તરીકે તેને અમલમાં તો શું? 847 00:40:01,320 --> 00:40:04,940 શું માહિતી અમે કરી શકો છો ક્રમમાં ડિસ્ક પર સંગ્રહ સંતાપ 848 00:40:04,940 --> 00:40:08,040 જેવા અમારા ફાઈલ માપ ઘટાડો એક કિલોબાઇટ, કંઈક કરવા માટે એક મેગાબાઇટ 849 00:40:08,040 --> 00:40:09,430 નાના? 850 00:40:09,430 --> 00:40:13,130 જેમાં નિરર્થકતા આવેલું અહીં સ્પષ્ટ કરવા? 851 00:40:13,130 --> 00:40:13,880 તમે શું કરી શકે છે? 852 00:40:13,880 --> 00:40:14,380 અરે વાહ? 853 00:40:14,380 --> 00:40:21,380 854 00:40:21,380 --> 00:40:21,970 ચોક્કસ. 855 00:40:21,970 --> 00:40:24,550 શા માટે નથી કરતાં યાદ દરેક રફૂ પિક્સેલ રંગ 856 00:40:24,550 --> 00:40:28,200 માત્ર તમે pset4 કરી રહ્યાં છો બીટમેપ ફાઇલ ફોર્મેટ સાથે 857 00:40:28,200 --> 00:40:32,060 શા માટે તમે માત્ર પ્રતિનિધિત્વ નથી દાખલા તરીકે પિક્સેલ્સ leftmost સ્તંભ, 858 00:40:32,060 --> 00:40:35,370 બ્લેક પિક્સેલ્સ એક ટોળું, એક ટોળું લાલ અને પીળા, એક ટોળું 859 00:40:35,370 --> 00:40:39,210 અને પછી માત્ર કોઈક બેવડી વારંવાર વિચાર આ 100 વખત 860 00:40:39,210 --> 00:40:41,020 અથવા આ 1000 વખત પુનરાવર્તન? 861 00:40:41,020 --> 00:40:43,430 જ્યાં 100 કે 1000 છે માત્ર એક પૂર્ણાંક છે, જેથી તમે 862 00:40:43,430 --> 00:40:47,290 માત્ર એક જ નંબર સાથે દૂર વિચાર કરી શકો છો તેના બદલે સો અથવા હજારો 863 00:40:47,290 --> 00:40:48,270 વધારાના પીક્સલ. 864 00:40:48,270 --> 00:40:50,990 અને ખરેખર, કે અમે કેવી રીતે છે જર્મન ધ્વજ સંકુચિત કરી શકે છે. 865 00:40:50,990 --> 00:40:51,490 અને 866 00:40:51,490 --> 00:40:53,470 ફ્રેન્ચ ધ્વજ વિશે હવે શું? 867 00:40:53,470 --> 00:40:58,930 અમુક પ્રકારના અને થોડી માનસિક કસરત, જે ધ્વજ 868 00:40:58,930 --> 00:41:01,040 ડિસ્ક પર વધુ સંકુચિત થઈ શકે? 869 00:41:01,040 --> 00:41:05,720 જર્મન ધ્વજ અથવા ફ્રેન્ચ ધ્વજ, અમે તે અભિગમ લે છે તો શું? 870 00:41:05,720 --> 00:41:08,490 જર્મન ધ્વજ, કારણ કે ત્યાં વધુ આડી નિરર્થકતા. 871 00:41:08,490 --> 00:41:12,190 અને ડિઝાઇન દ્વારા, ઘણા ગ્રાફિકવાળા ફાઈલ બંધારણો ખરેખર તરીકે સ્કેન લાઇન્સ કામ નથી 872 00:41:12,190 --> 00:41:12,830 આડા. 873 00:41:12,830 --> 00:41:14,674 તેઓ કામ કરી શકે છે ઊભી, માત્ર માનવતા 874 00:41:14,674 --> 00:41:17,090 નિર્ણય કર્યો વર્ષ પહેલાં અમે પડશે સામાન્ય રીતે વસ્તુઓ પંક્તિ લાગે 875 00:41:17,090 --> 00:41:18,880 કૉલમ દ્વારા પંક્તિ બદલે કૉલમ દ્વારા. 876 00:41:18,880 --> 00:41:20,820 તેથી ખરેખર જો તમે હતા આ ફાઈલ જોવા માટે 877 00:41:20,820 --> 00:41:24,670 એક જર્મન ધ્વજ અને ફ્રેન્ચ કદ ધ્વજ, જેથી લાંબા ઠરાવ છે, કારણ કે 878 00:41:24,670 --> 00:41:27,530 એ જ, એ જ પહોળાઈ અને ઊંચાઈ, આ એક 879 00:41:27,530 --> 00:41:31,580 અહીં, મોટી હોઈ ચાલે છે કારણ કે તમે જાતે ત્રણ વખત પુનરાવર્તન છે. 880 00:41:31,580 --> 00:41:35,570 તમે વાદળી, વારંવાર સ્પષ્ટ કરવા માટે છે જાતે, સફેદ, લાલ, તમારી જાતને પુનરાવર્તન 881 00:41:35,570 --> 00:41:36,740 જાતે પુનરાવર્તન કરો. 882 00:41:36,740 --> 00:41:39,000 તમે ફક્ત જઈ શકો નહિં જમણી માર્ગ. 883 00:41:39,000 --> 00:41:41,200 અને એક કોરે, બનાવવા માટે સંકોચન સાફ 884 00:41:41,200 --> 00:41:43,910 આ છે, તો દરેક જગ્યાએ છે એક વિડીયો ચાર ફ્રેમ તમે 885 00:41:43,910 --> 00:41:45,890 એક ફિલ્મ કે યાદ શકે છે અથવા વિડિયો સામાન્ય રીતે છે 886 00:41:45,890 --> 00:41:47,286 સેકન્ડ પ્રતિ 29 અથવા 30 ફ્રેમ જેવા હોય છે. 887 00:41:47,286 --> 00:41:50,410 તે થોડો ફ્લિપ પુસ્તક જેવી છે, જ્યાં તમે માત્ર છબી, ઇમેજ, છબી, ઇમેજ જુઓ, 888 00:41:50,410 --> 00:41:54,410 છબી માત્ર સુપર ફાસ્ટ તેથી તે જેવી લાગે છે સ્ક્રીન પર અભિનેતાઓ ખસેડવાની છે. 889 00:41:54,410 --> 00:41:57,130 અહીં એક BUMBLE BEE પર ફૂલો એક ટોળું ટોચ. 890 00:41:57,130 --> 00:41:59,790 અને તે પ્રકારની હોઈ શકે છે પ્રથમ નજરમાં તે જોવા માટે મુશ્કેલ છે, 891 00:41:59,790 --> 00:42:04,020 ખસેડવાની આ જ વસ્તુ આ ફિલ્મ મધમાખી છે. 892 00:42:04,020 --> 00:42:06,880 >> શું સ્ટોર વિશે મૂક છે વિડિઓ વિસંકુચિત? 893 00:42:06,880 --> 00:42:11,420 તે વિડિયો સંગ્રહવા માટે કચરો પ્રકારની છે ચાર લગભગ સમાન છબીઓ કે 894 00:42:11,420 --> 00:42:13,670 માત્ર ત્યાં સુધી મધમાખી છે જ્યાં અલગ પડે છે. 895 00:42:13,670 --> 00:42:16,280 તમે ફેંકી દેવું કરી શકો છો સૌથી તે માહિતી 896 00:42:16,280 --> 00:42:20,190 અને માત્ર યાદ રાખો કે, હમણાં પૂરતું, પ્રથમ ફ્રેમ અને છેલ્લા ફ્રેમ, 897 00:42:20,190 --> 00:42:22,180 તમે કરેલા જો કી ફ્રેમ ક્યારેય, શબ્દ સાંભળ્યું 898 00:42:22,180 --> 00:42:24,337 અને માત્ર સ્ટોર આ મધમાખી છે કે જ્યાં મધ્યમ. 899 00:42:24,337 --> 00:42:26,170 અને તમે કરવાની જરૂર નથી , ગુલાબી સમાવ 900 00:42:26,170 --> 00:42:28,330 વાદળી, અને અને લીલા કિંમતો તેમજ. 901 00:42:28,330 --> 00:42:31,200 તેથી આ માત્ર તે જ કહે છે સંકોચન દરેક જગ્યાએ છે. 902 00:42:31,200 --> 00:42:34,900 તે અમે ઘણી વખત ઉપયોગ એક ટેકનિક છે આ દિવસોમાં મંજૂર માટે અથવા લે છે. 903 00:42:34,900 --> 00:42:38,750 >> પરંતુ તમે કેવી રીતે લખાણ સંકુચિત નથી? 904 00:42:38,750 --> 00:42:40,450 કેવી રીતે તમે લખાણ કોમ્પ્રેસ વિશે જાઓ છો? 905 00:42:40,450 --> 00:42:45,410 વેલ, આ અક્ષરો દરેક ASCII એક બાઈટ, અથવા આઠ બિટ્સ છે. 906 00:42:45,410 --> 00:42:47,360 અને તે પ્રકારના મૂક, અધિકાર છે? 907 00:42:47,360 --> 00:42:51,160 તમે કદાચ એક પ્રકાર છે, કારણ કે અને ઇ અને હું અને ઓ અને યુ ઘણો 908 00:42:51,160 --> 00:42:55,270 વધુ વખત W અથવા Q કે Z જેમ કરતાં, ભાષા પર આધાર રાખીને, જેમાં 909 00:42:55,270 --> 00:42:56,610 તમે ચોક્કસપણે લખી રહ્યાં. 910 00:42:56,610 --> 00:42:59,600 અને તેથી અમે શા માટે ઉપયોગ કરી રહ્યા છો દરેક અક્ષર માટે આઠ બિટ્સ, 911 00:42:59,600 --> 00:43:02,040 ઓછામાં ઓછા સહિત લોકપ્રિય અક્ષરો, અધિકાર? 912 00:43:02,040 --> 00:43:05,300 શા માટે ઓછા બિટ્સ ઉપયોગ ન આ સુપર લોકપ્રિય અક્ષરો, 913 00:43:05,300 --> 00:43:07,760 ઇ જેમ, વસ્તુઓ તમે ધારી પ્રથમ ફોર્ચ્યુન વ્હીલ માં, 914 00:43:07,760 --> 00:43:10,450 અને વધુ બિટ્સ ઉપયોગ ઓછા લોકપ્રિય અક્ષરો? 915 00:43:10,450 --> 00:43:10,950 શા માટે? 916 00:43:10,950 --> 00:43:13,130 અમે હમણાં જ જઈ રહ્યાં છો કારણ કે ઓછી વારંવાર ઉપયોગ કરે છે. 917 00:43:13,130 --> 00:43:15,838 >> વેલ, તે ત્યાં છે કે બહાર વળે આ કરવા માટે કરવામાં પ્રયાસો કરવામાં આવી છે. 918 00:43:15,838 --> 00:43:18,630 અને તમે એક ગ્રેડ યાદ તો શાળા અથવા હાઇ સ્કૂલ, મોર્સ કોડ. 919 00:43:18,630 --> 00:43:20,400 મોર્સ કોડ બિંદુઓ છે અને ડેશો હોઈ શકે છે 920 00:43:20,400 --> 00:43:24,270 એક વાયર તરીકે સાથે ફેલાય લાગે છે કે અમુક પ્રકારના સંકેતો. 921 00:43:24,270 --> 00:43:25,930 પરંતુ મોર્સ કોડ સુપર સ્વચ્છ છે. 922 00:43:25,930 --> 00:43:29,010 તે એક દ્વિસંગી સિસ્ટમ પ્રકારની છે કે તમે બિંદુઓ અથવા ડેશો છે. 923 00:43:29,010 --> 00:43:30,977 પરંતુ તમે, ઉદાહરણ તરીકે, બે બિંદુઓ જુઓ. 924 00:43:30,977 --> 00:43:33,810 અથવા તમે ઓપરેટર પાછા લાગે છે કે જો , જે બીપ, બીપ, બીપ જેમ જાય 925 00:43:33,810 --> 00:43:36,760 બીપ, થોડી ટ્રિગર હિટ કે સિગ્નલ પ્રસારણ 926 00:43:36,760 --> 00:43:40,360 જો તમે, પ્રાપ્તકર્તા, બે મેળવે બિંદુઓ, શું સંદેશો તમને પ્રાપ્ત થઈ છે? 927 00:43:40,360 --> 00:43:43,490 સંપૂર્ણપણે મનસ્વી. 928 00:43:43,490 --> 00:43:44,450 >> હું? 929 00:43:44,450 --> 00:43:45,060 હું? 930 00:43:45,060 --> 00:43:47,500 અથવા શું about-- અથવા હું? 931 00:43:47,500 --> 00:43:49,570 કદાચ તે માત્ર બે ઇ અધિકાર હતો? 932 00:43:49,570 --> 00:43:52,480 તેથી આ સમસ્યા છે મોર્સ સાથે decodability ના 933 00:43:52,480 --> 00:43:54,890 કોડ છે, જેમાં જ્યાં સુધી તમે સંદેશ મોકલવા વ્યક્તિ 934 00:43:54,890 --> 00:43:59,510 ખરેખર જેથી તમે સૉર્ટ કરી શકો છો વિરામ લે જુઓ અથવા અક્ષરો વચ્ચે અવકાશ સાંભળવા, 935 00:43:59,510 --> 00:44:02,990 તે માત્ર પૂરતી નથી zeros અને શૈલીઓનો એક સ્ટ્રીમ મોકલો, 936 00:44:02,990 --> 00:44:05,610 અથવા બિંદુઓ અને ડેશો, સંદિગ્ધતા છે, કારણ કે. 937 00:44:05,610 --> 00:44:08,640 ઇ એક ટપકું છે, તેથી જો તમે બે બિંદુઓ જોવા અથવા બે બિંદુઓ સાંભળવા, 938 00:44:08,640 --> 00:44:11,254 કદાચ તે બે ઇ છે અથવા કદાચ તે એક આઇ છે 939 00:44:11,254 --> 00:44:13,670 તેથી અમે એક છે કે જે સિસ્ટમ જરૂર તે કરતાં વધુ હોંશિયાર થોડું. 940 00:44:13,670 --> 00:44:16,851 તેથી એક માણસ નામ આપવામાં આવ્યું હફમેનના વર્ષ પહેલા બરાબર આ સાથે આવ્યા હતા. 941 00:44:16,851 --> 00:44:18,600 તેથી અમે ફક્ત જઈ રહ્યાં છો એક ઝડપી નજરથી લેવા માટે 942 00:44:18,600 --> 00:44:20,114 કેવી રીતે વૃક્ષો આ સંગત છે. 943 00:44:20,114 --> 00:44:22,530 આ અમુક ધારો કે તમે મોકલવા માંગો છો મૂર્ખ સંદેશ, 944 00:44:22,530 --> 00:44:26,342 માત્ર એક, બી બનેલા સી ડી 'ઓ અને ઈ ની, પરંતુ નિરર્થકતા ઘણો અહીં છે. 945 00:44:26,342 --> 00:44:27,550 તે ઇંગલિશ ન રાખવાનો છે. 946 00:44:27,550 --> 00:44:28,341 તે એનક્રિપ્ટ નથી. 947 00:44:28,341 --> 00:44:30,540 તે માત્ર એક મૂર્ખ સંદેશ છે પુનરાવર્તન ઘણાં બધાં સાથે. 948 00:44:30,540 --> 00:44:34,010 તમે ખરેખર બહાર ગણતરી તેથી જો તમામ એ, બી, સી, ડી 'ઓ, અને ઇ, અહીં છે 949 00:44:34,010 --> 00:44:34,890 આવૃત્તિ. 950 00:44:34,890 --> 00:44:37,800 અક્ષરો 20% છે એ અક્ષરો 45% 951 00:44:37,800 --> 00:44:39,660 ઇ, અને અન્ય ત્રણ ફ્રીક્વન્સીઝ છે. 952 00:44:39,660 --> 00:44:41,960 અમે જાતે ત્યાં ગણાશે અને માત્ર ગણિત હતી. 953 00:44:41,960 --> 00:44:44,579 >> તેથી તે તારણ આપે છે કે હફમેનના, કેટલાક સમય પહેલાં, 954 00:44:44,579 --> 00:44:46,620 તમે જાણો છો, કે જે સમજાયું શું હું મકાન શરૂ કરો, તો 955 00:44:46,620 --> 00:44:51,172 એક વૃક્ષ, અથવા વૃક્ષો જંગલ, જો તમે કરશે, નીચે પ્રમાણે, હું નીચેના કરી શકો છો. 956 00:44:51,172 --> 00:44:53,880 હું દરેક નોડ આપવા જઈ રહ્યો છું હું વિશે કાળજી કે અક્ષરો 957 00:44:53,880 --> 00:44:55,530 અને હું સ્ટોર કરવા જઇ રહ્યો છું કે નોડ ની અંદર 958 00:44:55,530 --> 00:44:58,610 ફ્લોટિંગ બિંદુ તરીકે ફ્રીક્વન્સીઝ કિંમત, અથવા તમે, પણ, એક એન તે ઉપયોગ કરી શકે છે 959 00:44:58,610 --> 00:45:00,210 પરંતુ અમે હમણાં જ અહીં એક ફ્લોટ ઉપયોગ કરશો. 960 00:45:00,210 --> 00:45:03,100 અને અલ્ગોરિધમનો કે તે તમને છે સૂચિત 961 00:45:03,100 --> 00:45:07,210 એક નોડ આ જંગલ લાગી વૃક્ષો, જેથી સુપર ટૂંકા વૃક્ષો, 962 00:45:07,210 --> 00:45:11,920 અને તમે તેમની સાથે જોડાઈ શરૂ નવા જૂથો, નવી માતાપિતા, જો તમે કરશે. 963 00:45:11,920 --> 00:45:16,150 અને તમે પસંદ કરીને આ કરવા એક સમયે બે નાના ફ્રીક્વન્સીઝ. 964 00:45:16,150 --> 00:45:18,110 તેથી હું 10% અને 10% હતો. 965 00:45:18,110 --> 00:45:19,090 હું એક નવા નોડ બનાવવા. 966 00:45:19,090 --> 00:45:20,910 અને હું નવી નોડ 20% કૉલ કરો. 967 00:45:20,910 --> 00:45:22,750 >> જે બે ગાંઠો હું આગામી ભેગા? 968 00:45:22,750 --> 00:45:23,810 તે થોડો અસ્પષ્ટ છે. 969 00:45:23,810 --> 00:45:26,643 તેથી કેટલાક ખૂણે કિસ્સાઓમાં છે ગણાવે છે, પરંતુ ખૂબ વસ્તુઓ રાખવા માટે, 970 00:45:26,643 --> 00:45:29,300 હું 20% પસંદ કરવા માટે જઇ રહ્યો છું - હું હવે બાળકો અવગણો. 971 00:45:29,300 --> 00:45:33,640 હું 20% પસંદ કરવા માટે જઇ રહ્યો છું અને 15% અને બે નવા ધાર દોરે છે. 972 00:45:33,640 --> 00:45:35,624 અને હવે જે બે ગાંઠો હું તાર્કિક ભેગા કરી શકું? 973 00:45:35,624 --> 00:45:38,540 તમામ બાળકો, બધા અવગણો પૌત્રો, માત્ર મૂળ જુઓ 974 00:45:38,540 --> 00:45:39,070 હવે. 975 00:45:39,070 --> 00:45:42,220 જે બે ગાંઠો હું મળીને ગૂંચ નથી? 976 00:45:42,220 --> 00:45:44,530 બિંદુ બે અને 0.35. 977 00:45:44,530 --> 00:45:45,890 તેથી મને બે નવા ધાર દોરવા દો. 978 00:45:45,890 --> 00:45:47,570 અને પછી હું માત્ર એક ડાબી મળ્યો છે. 979 00:45:47,570 --> 00:45:48,650 તેથી અહીં એક વૃક્ષ છે. 980 00:45:48,650 --> 00:45:51,160 અને તે ઇરાદાપૂર્વક દોરવામાં આવ્યું છે પ્રકારની ખૂબ જોવા માટે, 981 00:45:51,160 --> 00:45:55,870 પરંતુ ધાર છે કે નોટિસ પણ શૂન્ય અને એક લેબલ કરવામાં આવી છે. 982 00:45:55,870 --> 00:45:59,510 તેથી ડાબી ધાર તમામ શૂન્ય છે આપખુદ, પરંતુ સતત. 983 00:45:59,510 --> 00:46:01,170 બધા અધિકાર ધાર રાશિઓ છે. 984 00:46:01,170 --> 00:46:05,070 >> અને તેથી હોફમેન છે સૂચિત શું તમે બી પ્રતિનિધિત્વ કરવા માંગો છો, તો 985 00:46:05,070 --> 00:46:10,080 તરીકે નંબર 66 પ્રતિનિધિત્વ કરતાં આઠ સમગ્ર બીટ્સ છે, જે એક ASCII, 986 00:46:10,080 --> 00:46:13,360 તમે શું, માત્ર સ્ટોર ખબર પેટર્ન શૂન્ય, શૂન્ય, શૂન્ય, 987 00:46:13,360 --> 00:46:17,030 શૂન્ય કે પાથ છે, કારણ કે મારા વૃક્ષ પરથી, શ્રી હફમેનના વૃક્ષ, 988 00:46:17,030 --> 00:46:18,600 રુટ ના પર્ણ છે. 989 00:46:18,600 --> 00:46:20,970 તમે સ્ટોર કરવા માંગો છો ઇ, તેનાથી વિપરીત, નથી 990 00:46:20,970 --> 00:46:26,290 એક ઇ પ્રતિનિધિત્વ કરે છે આઠ બિટ્સ મોકલી તેના બદલે, બીટ્સ શું પેટર્ન મોકલી? 991 00:46:26,290 --> 00:46:26,890 એક. 992 00:46:26,890 --> 00:46:30,410 અને આ છે તે વિશે સરસ શું છે કે ઇ સૌથી લોકપ્રિય પત્ર છે, 993 00:46:30,410 --> 00:46:32,340 અને તમે ઉપયોગ કરી રહ્યાં છો તે માટે ટૂંકી કોડ. 994 00:46:32,340 --> 00:46:34,090 આગામી સૌથી લોકપ્રિય પત્ર તેને જેવી લાગે છે 995 00:46:34,090 --> 00:46:37,380 એ હતો અને તેથી કેટલા બિટ્સ તેમણે તે માટે ઉપયોગ પ્રસ્તાવ હતી? 996 00:46:37,380 --> 00:46:38,270 શૂન્ય, એક. 997 00:46:38,270 --> 00:46:41,060 >> અને તે અમલમાં છે કારણ કે આ વૃક્ષ, હવે માટે 998 00:46:41,060 --> 00:46:43,350 મને ત્યાં નિયત દો મોર્સ તરીકે કોઈ સંદિગ્ધતા 999 00:46:43,350 --> 00:46:46,090 કોડ છે, તમામ કારણ કે તમે વિશે કાળજી અક્ષરો 1000 00:46:46,090 --> 00:46:48,780 આ ધાર ઓવરને અંતે છે. 1001 00:46:48,780 --> 00:46:50,580 તેથી તે ફક્ત એક છે એક વૃક્ષ અરજી. 1002 00:46:50,580 --> 00:46:52,538 આ is-- અને હું તરંગ પડશે આ મારા હાથ તમે કેવી રીતે 1003 00:46:52,538 --> 00:46:55,570 એક સી માળખું તરીકે આ અમલ કરી શકે છે. 1004 00:46:55,570 --> 00:46:58,260 અમે હમણાં જ ભેગા કરવાની જરૂર છે એક પ્રતીક છે, ઘરનાં પરચૂરણ કામો જેમ, 1005 00:46:58,260 --> 00:46:59,910 અને આવર્તન ડાબી અને જમણી. 1006 00:46:59,910 --> 00:47:02,510 પરંતુ બે જોવા દો અંતિમ ઉદાહરણો છે કે જે તમને મળશે 1007 00:47:02,510 --> 00:47:06,070 પછી સાથે તદ્દન પરિચિત વિચાર સમસ્યા ક્વિઝ શૂન્ય પાંચ સુયોજિત કરો. 1008 00:47:06,070 --> 00:47:09,210 >> તેથી આ માહિતી માળખું છે હેશ કોષ્ટક તરીકે ઓળખાય છે. 1009 00:47:09,210 --> 00:47:12,247 અને હેશ ટેબલ પ્રકારની છે તે ડોલથી હોય છે કે ઠંડી. 1010 00:47:12,247 --> 00:47:14,830 અને ચાર ડોલથી ત્યાં ધારવું અહીં, માત્ર ચાર ખાલી જગ્યાઓ. 1011 00:47:14,830 --> 00:47:20,830 અહીં અહીં છે કાર્ડો એક ડેક છે, અને ક્લબ, પ્રારંભિક, ક્લબ, હીરા, ક્લબ, 1012 00:47:20,830 --> 00:47:25,960 હીરા, ક્લબ, હીરા, clubs-- તેથી આ રેન્ડમ છે. 1013 00:47:25,960 --> 00:47:30,330 હાર્ટ્સ, hearts-- તેથી હું છું અહીં ઇનપુટ્સ તમામ bucketizing. 1014 00:47:30,330 --> 00:47:32,430 અને હેશ ટેબલ જરૂરિયાતો તમારા ઈનપુટ જોવા માટે, 1015 00:47:32,430 --> 00:47:34,850 અને પછી ચોક્કસ માં મૂકી તમે જુઓ શું પર આધારિત મૂકો. 1016 00:47:34,850 --> 00:47:35,600 અલ્ગોરિધમ છે. 1017 00:47:35,600 --> 00:47:37,980 અને હું એક સુપર ઉપયોગ કરવામાં આવ્યો હતો સરળ દ્રશ્ય અલ્ગોરિધમનો. 1018 00:47:37,980 --> 00:47:40,030 જે ખૂબ સખત ભાગ હતો ચિત્રો શું હતા યાદ. 1019 00:47:40,030 --> 00:47:41,590 અને પછી ચાર કુલ વસ્તુઓ છે. 1020 00:47:41,590 --> 00:47:45,440 >> હવે રન ટાઇમ સ્ટેકનું, વધતી હતી, જે અહીં એક ઇરાદાપૂર્વકની ડિઝાઇન બાબત છે. 1021 00:47:45,440 --> 00:47:46,540 પરંતુ હું બીજું શું કરી શકે? 1022 00:47:46,540 --> 00:47:49,080 તેથી ખરેખર અહીં અમે હોય છે ઓલ્ડ સ્કૂલ પરીક્ષા પુસ્તકો ટોળું. 1023 00:47:49,080 --> 00:47:51,240 એક ટોળું ધારો કે વિદ્યાર્થીઓ નામો અહીં પર હોય છે. 1024 00:47:51,240 --> 00:47:52,570 અહીં એક મોટી હેશ ટેબલ છે. 1025 00:47:52,570 --> 00:47:54,867 તેના બદલે ચાર ડોલથી, હું 26 કહેવું દેવા છે. 1026 00:47:54,867 --> 00:47:57,950 અને અમે 26 ઉધાર જવા માંગો છો ન હતી બહાર [વસ્તુઓ? Annenberg?], જેથી 1027 00:47:57,950 --> 00:48:00,289 અહીં પ્રતિનિધિત્વ કરે છે પાંચ છે એક ઝેડ મારફતે અને જો હું 1028 00:48:00,289 --> 00:48:03,580 , જેનું નામ એક સાથે શરૂ થાય છે એક વિદ્યાર્થી જોવા હું ત્યાં તેના અથવા તેણીના ક્વિઝ મૂકી જાઉં છું. 1029 00:48:03,580 --> 00:48:08,850 કોઈને C સાથે શરૂ થાય છે, ત્યાં સુધી, A-- ખરેખર, તે કરવા માટે નહિં માંગો હતી. 1030 00:48:08,850 --> 00:48:10,060 બી અહીં જાય છે. 1031 00:48:10,060 --> 00:48:13,390 તેથી હું મળી છે અને બી અને સી અને હવે અહીં અન્ય એક વિદ્યાર્થી. 1032 00:48:13,390 --> 00:48:16,212 પરંતુ આ હેશ ટેબલ છે, તો એક એરે સાથે અમલ, 1033 00:48:16,212 --> 00:48:17,920 હું પ્રકારની ખરાબ છું આ બિંદુએ, અધિકાર? 1034 00:48:17,920 --> 00:48:19,510 હું પ્રકારની આ ક્યાંક મુકવાની જરૂર છે. 1035 00:48:19,510 --> 00:48:24,380 >> તેથી હું આ હલ કરી શકો છો એક રસ્તો તમામ છે, અધિકાર સી વ્યસ્ત છે, બી વ્યસ્ત છે, વ્યસ્ત છે. 1036 00:48:24,380 --> 00:48:28,880 હું તેથી ડી તેને મૂકવા જાઉં છું પ્રથમ, હું રેન્ડમ ઝટપટ ઍક્સેસ છે 1037 00:48:28,880 --> 00:48:31,064 વિદ્યાર્થીઓ માટે ડોલથી દરેક. 1038 00:48:31,064 --> 00:48:33,230 પરંતુ હવે તે પ્રકારની હસ્તાંતરિત છે કંઈક રેખીય માં, 1039 00:48:33,230 --> 00:48:36,750 હું કોઈને માટે શોધ કરવા માંગો છો, કારણ કે જો જેની નામ સાથે શરૂ થાય છે, હું અહીં તપાસો. 1040 00:48:36,750 --> 00:48:38,854 પરંતુ આ એક ન હોય તો હું શોધી રહ્યો છું વિદ્યાર્થી, 1041 00:48:38,854 --> 00:48:41,520 હું પ્રકારની ચકાસણી શરૂ કરવા માટે હોય ડોલથી, હું શું કારણ કે 1042 00:48:41,520 --> 00:48:44,530 ના સરખી સૉર્ટ હતી આ માહિતી માળખું તપાસ. 1043 00:48:44,530 --> 00:48:47,710 ફક્ત જોવા કહેતા એક મૂર્ખ માર્ગ પહેલી ઉપલ્બધ ઉદઘાટન માટે, 1044 00:48:47,710 --> 00:48:51,850 અને, તેથી વાત કરવા માટે, એક યોજના બી તરીકે મૂકી અથવા આ કિસ્સામાં યોજના ડી, કિંમત 1045 00:48:51,850 --> 00:48:53,340 તેના બદલે તે સ્થાન છે. 1046 00:48:53,340 --> 00:48:56,470 આ સૂચવે છે કે તમે છે તો માત્ર જેથી છે 26 સ્થળો અને વિદ્યાર્થીઓ મળી 1047 00:48:56,470 --> 00:49:00,600 નામ Q કે Z, અથવા કંઈક સાથે કે, ઓછામાં ઓછા તમે જગ્યા ઉપયોગ કરી રહ્યાં છો. 1048 00:49:00,600 --> 00:49:03,140 >> પરંતુ અમે પહેલેથી જ વધુ જોવા મળે છે અહીં હોંશિયાર ઉકેલો, અધિકાર? 1049 00:49:03,140 --> 00:49:04,870 તમે તેના બદલે શું કરશો તમે અથડામણ હોય તો શું? 1050 00:49:04,870 --> 00:49:06,670 બે લોકો હોય તો આ નામ શું કરશે 1051 00:49:06,670 --> 00:49:09,160 એક સ્માર્ટ અથવા વધુ કરવામાં આવી છે માત્ર કરતાં સાહજિક ઉકેલ 1052 00:49:09,160 --> 00:49:12,840 ડી હશે તેવું માનવામાં આવે છે જ્યાં એક મૂકે? 1053 00:49:12,840 --> 00:49:14,810 મેં હમણાં જ કેમ ન જાય તો બહાર [? Annenberg?] 1054 00:49:14,810 --> 00:49:19,960 malloc છે, અન્ય નોડ જેમ તે મૂકી અહીં, અને પછી અહીં એક વિદ્યાર્થી કે મૂકો. 1055 00:49:19,960 --> 00:49:22,120 હું અનિવાર્યપણે છે કે જેથી એક એરે અમુક પ્રકારની છે, 1056 00:49:22,120 --> 00:49:25,590 અથવા આપણે છો તરીકે કદાચ વધુ સુંદર એક કડી થયેલ યાદી જોવા માટે શરૂ થાય છે. 1057 00:49:25,590 --> 00:49:29,520 >> અને તેથી એક હેશ કોષ્ટક માળખું છે કે, ફક્ત આ જેવી લાગી શકે છે 1058 00:49:29,520 --> 00:49:33,900 પરંતુ વધુ હોશિયારીથી, તમે કંઈક કહેવાય અલગ સાંકળ જેમાં હેશ ટેબલ 1059 00:49:33,900 --> 00:49:38,340 તદ્દન ખાલી એક એરે દરેક છે જેની તત્વો નંબર નથી, 1060 00:49:38,340 --> 00:49:40,470 એક કડી થયેલ યાદી પોતે છે. 1061 00:49:40,470 --> 00:49:45,080 તમે સુપર ઝડપી ઍક્સેસ વિચાર કરો કે જેથી જ્યાં તમારી કિંમત હેશ નક્કી. 1062 00:49:45,080 --> 00:49:48,059 મોટા ભાગના કાર્ડ ઉદાહરણ સાથે જેમ, હું સુપર ઝડપી નિર્ણયો કરી હતી. 1063 00:49:48,059 --> 00:49:49,600 હાર્ટ્સ હીરા અહીં જાય છે, અહીં જાય છે. 1064 00:49:49,600 --> 00:49:52,180 અહીં જ, અહીં જાય છે, ડી બી અહીં જાય છે, અહીં જાય છે. 1065 00:49:52,180 --> 00:49:55,740 તેથી સુપર ઝડપી દેખાવ અપ્સ, અને જો તમે એક કેસ માં ચલાવવા માટે થાય છે 1066 00:49:55,740 --> 00:49:59,429 જ્યાં તમે પુરો અથડામણમાં બે એ જ નામ સાથે લોકો, સારી પછી 1067 00:49:59,429 --> 00:50:00,970 તમે માત્ર તેમને એકસાથે લિંક શરૂ કરો. 1068 00:50:00,970 --> 00:50:03,900 અને કદાચ તમે તેમને સૉર્ટ રાખવા મૂળાક્ષરોની, કદાચ તમે નથી. 1069 00:50:03,900 --> 00:50:05,900 પરંતુ ઓછામાં ઓછા હવે અમે dynamism છે. 1070 00:50:05,900 --> 00:50:10,250 તેથી એક બાજુ પર અમે સુપર ફાસ્ટ છે સતત સમય, અને રેખીય સમય કાઇન્ડ 1071 00:50:10,250 --> 00:50:14,110 આ કડી થયેલ યાદીઓ, તો સામેલ થોડો લાંબો વિચાર કરવાનું શરૂ કરો. 1072 00:50:14,110 --> 00:50:16,880 >> તેથી એક અવિવેકી આ પ્રકારની, પહેલા geeky મજાક વર્ષ. 1073 00:50:16,880 --> 00:50:19,590 આ CS50 હેક એક Thon પર, વિદ્યાર્થીઓ ચેક ત્યારે, 1074 00:50:19,590 --> 00:50:22,040 કેટલાક ટીએફ અથવા CA દર વર્ષે વિચારે છે તે મૂકવામાં રમૂજી છે 1075 00:50:22,040 --> 00:50:27,772 આ જેમ એક નિશાની છે, જ્યાં તે માત્ર તમારું નામ એક સાથે શરૂ થાય છે, તો એનો અર્થ એ થાય, 1076 00:50:27,772 --> 00:50:28,870 આ માર્ગ પર જાઓ. 1077 00:50:28,870 --> 00:50:31,110 તમારું નામ શરૂ થાય છે બી સાથે છે આ બરાબર જાય છે, 1078 00:50:31,110 --> 00:50:33,290 તે કદાચ પાછળથી સત્ર માં રમૂજી છે. 1079 00:50:33,290 --> 00:50:36,420 પરંતુ બીજા છે પણ, આ કરી માર્ગ. 1080 00:50:36,420 --> 00:50:37,410 પાછા કે આવવું. 1081 00:50:37,410 --> 00:50:38,600 >> તેથી આ માળખું છે. 1082 00:50:38,600 --> 00:50:40,420 અને આ અમારા છેલ્લા છે આજે માળખું, 1083 00:50:40,420 --> 00:50:42,400 જે એક trie કહેવાય કંઈક છે. 1084 00:50:42,400 --> 00:50:47,140 કેટલાક કારણોસર ટૂંકા હોય છે, જેમાં ટી-આર-I-ઇ, પુનઃપ્રાપ્તિ માટે છે, પરંતુ તે trie કહેવાય છે. 1085 00:50:47,140 --> 00:50:51,389 તેથી એક trie અન્ય રસપ્રદ છે આ વિચારો ઘણો મિશ્રણ. 1086 00:50:51,389 --> 00:50:52,930 તે અમે પહેલાં જોઈ કર્યું, જે એક વૃક્ષ, છે. 1087 00:50:52,930 --> 00:50:54,180 તે બાઈનરી શોધ વૃક્ષ નથી. 1088 00:50:54,180 --> 00:50:58,410 તે બાળકો કોઈપણ નંબર સાથે એક વૃક્ષ પરંતુ એક trie બાળકો દરેક 1089 00:50:58,410 --> 00:51:00,090 ઝાકઝમાળ છે. 1090 00:51:00,090 --> 00:51:04,790 કદ ઝાકઝમાળ, 26 અથવા કદાચ 27 કહે છે તમે hyphenated નામો આધાર માંગો છો, તો 1091 00:51:04,790 --> 00:51:06,790 અથવા લોકોના નામો માં apostrophes. 1092 00:51:06,790 --> 00:51:08,280 >> અને તેથી આ એક માહિતી માળખું છે. 1093 00:51:08,280 --> 00:51:10,290 અને તમે ટોચ પરથી જોવા હોય તો નીચે, ગમે તો 1094 00:51:10,290 --> 00:51:13,710 છે ત્યાં ટોચ નોડ, એમ જોવા ત્યાં leftmost વસ્તુ તરફ ઇશારો, 1095 00:51:13,710 --> 00:51:17,665 જે પછી એક, એક્સ, ડબલ્યુ, ઇ, એલ, એલ આ છે માત્ર એ માહિતી બંધારણ છે કે આપખુદ 1096 00:51:17,665 --> 00:51:19,120 લોકોના નામો સ્ટોર કરે છે. 1097 00:51:19,120 --> 00:51:25,720 અને મેક્સવેલ માત્ર અનુસરીને સંગ્રહિત થાય છે એરે એરે એરે એક પાથ. 1098 00:51:25,720 --> 00:51:30,050 એક trie છે વિશે પણ સુંદર શું છે , કે એક કડી થયેલ યાદી જ્યારે અને તે પણ 1099 00:51:30,050 --> 00:51:34,520 ઝાકઝમાળ, અમે ક્યારેય મેળવેલ કરેલા શ્રેષ્ઠ છે રેખીય સમય અથવા લઘુગુણકીય સમય શોધી 1100 00:51:34,520 --> 00:51:35,600 કોઈને. 1101 00:51:35,600 --> 00:51:40,530 એક trie આ માહિતી માળખું, તો મારી માહિતી માળખું એક નામ ધરાવે છે 1102 00:51:40,530 --> 00:51:43,720 અને હું મેક્સવેલ શોધી રહ્યો છું, હું છું ખૂબ ઝડપથી તેને શોધવા માટે જઈ રહી છે. 1103 00:51:43,720 --> 00:51:47,910 હું માત્ર એમ એ એક્સ-W-ઇ એલ એલ માટે જુઓ. તો આ માહિતી માળખું, તેનાથી વિપરીત, 1104 00:51:47,910 --> 00:51:51,830 એક હોય તો એન, એક મિલિયન છે જો આ માહિતી માળખામાં મિલિયન નામો, 1105 00:51:51,830 --> 00:51:57,100 મેક્સવેલ હજુ હોઈ ચાલે છે શોધાયેલ માત્ર એમ એ એક્સ-W-ઇ એલ એલ પછી 1106 00:51:57,100 --> 00:51:58,090 પગલાંઓ. 1107 00:51:58,090 --> 00:52:01,276 અને David-- ડી એ વી આઇ ડી પગલાંઓ. 1108 00:52:01,276 --> 00:52:03,400 અન્ય શબ્દોમાં, નિર્માણ દ્વારા છે કે એ માહિતી બંધારણ 1109 00:52:03,400 --> 00:52:07,240 મળી આ એરે તમામ, જે તમામ પોતાને રેન્ડમ એક્સેસ આધાર 1110 00:52:07,240 --> 00:52:11,090 હું લોકો ઉપર જોઈ શરૂ કરી શકો છો કે સમય એક જથ્થો મદદથી નામ 1111 00:52:11,090 --> 00:52:14,340 નથી સંખ્યાના પ્રમાણમાં આ માહિતી માળખું વસ્તુઓ, 1112 00:52:14,340 --> 00:52:16,330 જેવા મિલિયન હાલની નામો. 1113 00:52:16,330 --> 00:52:20,135 તેને શોધવા માટે મને લાગે છે સમય જથ્થો એમ એક-X-W-ઇ એલ એલ આ માહિતી માળખું છે 1114 00:52:20,135 --> 00:52:22,260 પ્રમાણસર ન કરવા માટે આ માહિતી માળખું કદ, 1115 00:52:22,260 --> 00:52:25,930 પરંતુ નામ લંબાઈ છે. 1116 00:52:25,930 --> 00:52:28,440 અને વાસ્તવિકતાથી નામો અમે શોધી રહ્યાં છો 1117 00:52:28,440 --> 00:52:29,970 ક્યારેય લાંબા ક્રેઝી હોઈ ચાલે છે. 1118 00:52:29,970 --> 00:52:32,600 કદાચ કોઈને 10 અક્ષર છે 20 અક્ષર નામ નામ. 1119 00:52:32,600 --> 00:52:33,900 તે હક, ચોક્કસપણે મર્યાદિત છે? 1120 00:52:33,900 --> 00:52:37,110 પૃથ્વી પર માનવ છે જે સૌથી લાંબો શક્ય નામ છે, 1121 00:52:37,110 --> 00:52:39,920 પરંતુ તે નામ સતત છે કિંમત લંબાઈ, અધિકાર? 1122 00:52:39,920 --> 00:52:41,980 તે કોઇ પણ અર્થમાં અલગ અલગ નથી. 1123 00:52:41,980 --> 00:52:45,090 તેથી આ રીતે, અમે કર્યું એ માહિતી બંધારણ પ્રાપ્ત 1124 00:52:45,090 --> 00:52:47,800 કે સતત સમય દેખાવ અપ છે. 1125 00:52:47,800 --> 00:52:50,670 તે પગલાંઓની સંખ્યા લેવા નથી ઇનપુટ લંબાઈ પર આધાર રાખીને, 1126 00:52:50,670 --> 00:52:54,250 નામ નથી, પરંતુ નંબર આ માહિતી માળખું છે. 1127 00:52:54,250 --> 00:52:58,700 અમે નામો સંખ્યા બમણી તેથી જો એક અબજ અબજ બે થી પછીના વર્ષે, 1128 00:52:58,700 --> 00:53:03,720 શોધવી મેક્સવેલ લાગી રહ્યું છે સાત પગલાં ચોક્કસ જ નંબર 1129 00:53:03,720 --> 00:53:04,650 તેને શોધવા માટે. 1130 00:53:04,650 --> 00:53:08,810 અને તેથી અમે પ્રાપ્ત હોય તેમ લાગે છે સમય ચાલી અમારી પવિત્ર ગ્રેઇલ. 1131 00:53:08,810 --> 00:53:10,860 >> તેથી ઝડપી જાહેરાત એક દંપતિ. 1132 00:53:10,860 --> 00:53:11,850 ક્વિઝ શૂન્ય રહ્યું છે. 1133 00:53:11,850 --> 00:53:14,600 આ કોર્સ વેબસાઇટ પર પર વધુ દિવસ તો આગલા બે નહીં. 1134 00:53:14,600 --> 00:53:17,120 માતાનો સોમવાર તે રજા છે lecture-- અહીં હાર્વર્ડ ખાતે સોમવારે. 1135 00:53:17,120 --> 00:53:18,850 તે ન્યૂ હેવન માં નથી તેથી અમે વર્ગ લઇ રહ્યા છીએ 1136 00:53:18,850 --> 00:53:20,310 સોમવારે વ્યાખ્યાન માટે ન્યૂ હેવન. 1137 00:53:20,310 --> 00:53:22,550 બધું ફિલ્માંકન થશે અને, સામાન્ય તરીકે લાઇવ સ્ટ્રીમ 1138 00:53:22,550 --> 00:53:24,900 પરંતુ આજે અંત દો 30 બીજા ક્લિપ સાથે 1139 00:53:24,900 --> 00:53:26,910 કહેવાતા "ઊંડા વિચારો" Daven Farnham દ્વારા જે 1140 00:53:26,910 --> 00:53:30,850 શનિવારે દ્વારા ગયા વર્ષે પ્રેરણા આપી હતી નાઇટ લાઇવ ના "ઊંડા વિચારો" 1141 00:53:30,850 --> 00:53:35,700 જેક હેન્ડી દ્વારા જે હવે અર્થમાં બનાવવા જોઈએ. 1142 00:53:35,700 --> 00:53:38,810 >> ફિલ્મ: અને હવે, "ડીપ Daven Farnham દ્વારા વિચારો ". 1143 00:53:38,810 --> 00:53:42,100 1144 00:53:42,100 --> 00:53:42,870 હેશ ટેબલ. 1145 00:53:42,870 --> 00:53:45,940 1146 00:53:45,940 --> 00:53:47,660 >> 1 વક્તા: બધા હક છે, કે હવે તે છે. 1147 00:53:47,660 --> 00:53:48,805 અમે આગામી સપ્તાહે તમે જોશો. 1148 00:53:48,805 --> 00:53:55,380 1149 00:53:55,380 --> 00:53:56,680 >> ડો: ક્રિયા જોવા માટે. 1150 00:53:56,680 --> 00:53:58,304 તેથી આપણે હમણાં કે પર એક નજર કરીએ. 1151 00:53:58,304 --> 00:53:59,890 અહીં, અમે એક ક્રમમાંગોઠવાયેલનથી એરે હોય છે. 1152 00:53:59,890 --> 00:54:04,860 >> IAN: ડો, તમે આગળ અને પુનઃશરૂ જઈ શકે છે માત્ર એક બીજા માટે આ, કૃપા કરીને. 1153 00:54:04,860 --> 00:54:08,562 બધા હક છે, કેમેરા, જેથી રોલિંગ છે ક્રિયા તમે ડો, તૈયાર છો ત્યારે, બરાબર? 1154 00:54:08,562 --> 00:54:11,020 ડો: બધા હક છે, તેથી અમે શું અહીં છે એક ક્રમમાંગોઠવાયેલનથી એરે છે. 1155 00:54:11,020 --> 00:54:13,960 અને હું તત્વો બધા રંગ ધરાવતાં કર્યું તે હકીકત છે, તે સૂચવવા માટે લાલ, 1156 00:54:13,960 --> 00:54:14,460 ક્રમમાંગોઠવાયેલનથી. 1157 00:54:14,460 --> 00:54:17,960 તેથી પ્રથમ વસ્તુ અમે નથી કે યાદ અમે એરે ડાબી અડધા સૉર્ટ છે. 1158 00:54:17,960 --> 00:54:20,630 પછી અમે અધિકાર સૉર્ટ એરે અડધા. 1159 00:54:20,630 --> 00:54:22,830 યા-હા, Ya શબ્દકોશ હા, Ya શબ્દકોશ હા, અમે તેમને મર્જ. 1160 00:54:22,830 --> 00:54:24,520 અને અમે સંપૂર્ણપણે છટણી એરે હોય છે. 1161 00:54:24,520 --> 00:54:25,360 તેથી તે કામ કરે છે મર્જ સૉર્ટ કેવી રીતે. 1162 00:54:25,360 --> 00:54:27,109 >> IAN: થોભો, થોભો, થોભો, કટ, કટ, કટ કાપી. 1163 00:54:27,109 --> 00:54:30,130 ડો, તમે માત્ર Ya શબ્દકોશ દા કરી શકતા નથી, યા-હા, Ya શબ્દકોશ દા મર્જ સૉર્ટ મારફતે તમારા રીતે. 1164 00:54:30,130 --> 00:54:31,970 >> ડો: હું માત્ર હતી. 1165 00:54:31,970 --> 00:54:32,832 તે સરસ છે. 1166 00:54:32,832 --> 00:54:33,540 અમે જવા માટે સારા છો. 1167 00:54:33,540 --> 00:54:34,760 આપણે માત્ર રોલિંગ રાખવા દો. 1168 00:54:34,760 --> 00:54:35,380 તેથી કોઈપણ રીતે, 1169 00:54:35,380 --> 00:54:37,800 >> IAN: તમે તે સમજાવવા માટે હોય છે તે વધુ સંપૂર્ણપણે કે કરતાં. 1170 00:54:37,800 --> 00:54:39,999 કે જે હમણાં જ પર્યાપ્ત નથી. 1171 00:54:39,999 --> 00:54:41,790 ડો: ઇયાન, અમે નથી એક પર પાછા જાઓ જરૂર છે. 1172 00:54:41,790 --> 00:54:42,350 તે સરસ છે. 1173 00:54:42,350 --> 00:54:45,690 તેથી કોઈપણ રીતે, અમે મર્જ સાથે ચાલુ રહેશે તો ઇયાન, અમે ફિલ્માંકન મધ્યમાં છો. 1174 00:54:45,690 --> 00:54:46,612 >> IAN: મને ખબર છે. 1175 00:54:46,612 --> 00:54:49,320 અને અમે હમણાં જ Ya શબ્દકોશ દા કરી શકતા નથી, યા-હા, સમગ્ર પ્રક્રિયા દ્વારા Ya શબ્દકોશ દા. 1176 00:54:49,320 --> 00:54:52,200 તમે કેવી રીતે સમજાવવા માટે હોય બે બાજુઓ મળીને મર્જ કરો. 1177 00:54:52,200 --> 00:54:53,570 >> ડો પરંતુ અમે પહેલાથી જ કર્યું છે સમજાવી કેવી રીતે બે sides-- 1178 00:54:53,570 --> 00:54:55,321 >> IAN: તમે માત્ર બતાવ્યા પ્રમાણે કર્યું તેમને મર્જ એરે. 1179 00:54:55,321 --> 00:54:56,486 ડો: તેઓ પ્રક્રિયા ખબર. 1180 00:54:56,486 --> 00:54:57,172 તેઓ દંડ છો. 1181 00:54:57,172 --> 00:54:58,380 અમે તે પર દસ વખત ગયા છો. 1182 00:54:58,380 --> 00:55:00,330 >> IAN: તમે માત્ર તે પર અધિકાર છૂટી. 1183 00:55:00,330 --> 00:55:03,360 અમે એક પાછા જઈ રહ્યાં છો, તમે તે ઉપર તમે Ya શબ્દકોશ હા, Ya શબ્દકોશ દા કરી શકતા નથી. 1184 00:55:03,360 --> 00:55:05,480 પાછા એક અધિકાર. 1185 00:55:05,480 --> 00:55:07,833 >> ડો: હું પાછા જાઓ હોય સ્લાઇડ્સ તમામ મારફતે? 1186 00:55:07,833 --> 00:55:08,332 મારા પ્રભુ. 1187 00:55:08,332 --> 00:55:11,008 1188 00:55:11,008 --> 00:55:13,004 તે છઠ્ઠી વખત, ઇયાન જેવું છે. 1189 00:55:13,004 --> 00:55:13,940 તે સરસ છે. 1190 00:55:13,940 --> 00:55:15,200 >> IAN: બધા અધિકાર. 1191 00:55:15,200 --> 00:55:16,590 તમે તૈયાર છો? 1192 00:55:16,590 --> 00:55:17,400 ગ્રેટ. 1193 00:55:17,400 --> 00:55:18,950 ક્રિયા.