[Powered by Google Translate] [3 વિભાગ - વધુ અનુકૂળ]
[રોબ બોડેન - હાર્વર્ડ યુનિવર્સિટી]
>> [આ CS50 છે. - CS50.TV]
>> જેથી પ્રથમ પ્રશ્ન strangely ભાષામાં છે.
GDB તમને એક કાર્યક્રમ "ડિબગ" પરંતુ, વધુ સ્પષ્ટપણે તે શું તમને છે?
હું એક કે જે જવાબ આપવા, અને પડશે મને ખબર નથી શું બરાબર અપેક્ષિત છે,
તેથી હું તેને એ રેખાઓ તે કંઈક અનુમાન લગાવવા છું તમને પગલું દ્વારા પગલું
આ કાર્યક્રમ દ્વારા ચાલી, તેની સાથે સંચાર કરે છે, ફેરફાર ચલો, આ તમામ બાબતો -
મૂળભૂત રીતે સંપૂર્ણ કાર્યક્રમ અમલ નિયંત્રિત
અને કાર્યક્રમના અમલ આપેલ કોઈપણ ભાગ તપાસ કરવી.
તેથી તે લક્ષણો તમને વસ્તુઓ ડિબગ.
ઠીક છે.
દ્વિસંગી શોધ શા માટે જરૂરી નથી કે જે એરે અલગ કરવામાં આવે છે?
કોણ કે જવાબ માંગે છે?
[વિદ્યાર્થી] કારણ કે તે જો તે નહિં છટણી છે કામ કરતું નથી. >> યાહ. [અટ્ટહાસ્ય]
જો તે નહિં છટણી છે, પછી તે અશક્ય છે તે ભાગમાં વિભાજિત
અને ડાબી કે બધું જાણતા ઓછી અને જમણી બધું છે
મધ્યમ કિંમત કરતાં વધારે છે.
તેથી તે માટે છટણી કરવાની જરૂર છે.
ઠીક છે.
સ્ક્વેર્ડ n ના ઓ બબલ સૉર્ટ શા માટે છે?
શું કોઇને પ્રથમ ખૂબ ઝડપી શું પરપોટા જેવું છે ઝાંખી ઉચ્ચ સ્તરીય આપવા માંગો છો?
[વિદ્યાર્થી] તમે મૂળભૂત દરેક તત્વ મારફતે જાઓ અને તમે પ્રથમ થોડા તત્વો તપાસો.
જો તેઓ જ્યાં તમે તેમને સ્વેપ નથી, તો પછી તમે આગામી થોડા તત્વો અને તેથી તપાસો.
જ્યારે તમે ઓવરને પહોંચે છે, તો પછી તમે જાણો છો કે સૌથી મોટું તત્વ ઓવરને અંતે મૂકવામાં આવે છે,
જેથી તમે અવગણો કે એક પછી તમે પસાર થઇ પર રાખવા,
અને દરેક વખતે જ્યારે તમે કોઈ એક ઓછી તત્વ તપાસો ત્યાં સુધી તમે કોઈ ફેરફારો કરવા માટે હોય છે. >> યાહ.
તે બબલ સૉર્ટ કહેવાય છે કારણ કે જો તમે તેની બાજુ પર એરે ફ્લિપ કરો જેથી તે અને નીચે, વર્ટીકલ,
પછી મોટી કિંમતો નીચે ડૂબી જાય છે અને નાના કિંમતો ઉપર બબલ કરશે.
કે કેવી રીતે તેનું નામ મળ્યું.
અને હા, તમે માત્ર પસાર થાય છે.
તમે એરે મારફતે જઈને રહું, મોટા કિંમત જેઓ
માટે નીચે સૌથી મોટી કિંમતો મેળવો.
>> તે શા માટે છે સ્ક્વેર્ડ n ના ઓ?
પ્રથમ, કોઈને કહેવું તે શા માટે n ના ઓ સ્ક્વેર્ડ છે કરવા માંગો છો કરે છે?
[વિદ્યાર્થી] કારણ કે દરેક રન માટે n વખત જાય છે.
તમે ફક્ત ખાતરી કરો કે તમે સૌથી તત્વ બધી રીતે ભર્યું બંધ હોઈ શકે છે,
પછી તમે ઘણા ઘટકો માટે તે પુનરાવર્તન છે. >> યાહ.
જેથી ધ્યાનમાં રાખો મોટું ઓ શું અર્થ થાય છે અને મોટી ઓમેગા અર્થ શું.
મોટા O ની ધીમી કેવી રીતે તે વાસ્તવમાં ચાલી શકે બંધાયેલ ઉચ્ચ જેવું છે.
તેથી તે સ્ક્વેર્ડ n ના ઓ કહેતા, તે n ના ઓ નથી અથવા બીજા તેને ચલાવવા માટે સમર્થ હશે
રેખીય સમય છે, પરંતુ તે n cubed ઓફ ઓ છે
કારણ કે તે n cubed ઓફ ઓ દ્વારા ઘેરાયેલો છે.
જો તે સ્ક્વેર્ડ n ના ઓ દ્વારા ઘેરાયેલો છે, પછી તે પણ n cubed દ્વારા ઘેરાયેલો છે.
તેથી તે સ્ક્વેર્ડ n છે, અને ચોક્કસ ખરાબમાં ખરાબ કિસ્સામાં તે સ્ક્વેર્ડ n એ કરતાં વધુ સારી ન કરી શકો,
કેમ કે તે સ્ક્વેર્ડ n ના ઓ છે.
તેથી તે કેવી રીતે બહાર આવે છે n સ્ક્વેર્ડ પ્રયત્ન અંતે થોડો ગણિત જોવા માટે,
જો અમે અમારી યાદીમાં પાંચ વસ્તુઓ છે, પ્રથમ વખત કેટલા અદલબદલ અમે સંભવિત બનાવવા માટે જરૂર શકે છે
ક્રમમાં આ વિચાર? ચાલો ખરેખર માત્ર -
કેટલી અદલબદલ અમે માટે એરે મારફતે બબલ પ્રકારના પ્રથમ ગાળે બનાવી હોય જવું છે?
[વિદ્યાર્થી] n - 1. >> યાહ.
>> 1 - જો ત્યાં 5 તત્વો છે, અમે માટે n કરવાની જરૂર જઈ રહ્યાં છો.
પછી બીજા એક પર કેટલી અદલબદલ અમે બનાવવા માટે છે જવું છે?
[વિદ્યાર્થી] n - 2. >> યાહ.
અને ત્રીજા n પ્રયત્ન રહ્યું છે - 3, અને પછી અનુકૂળતા માટે હું છેલ્લા બે લખશે
પછી આપણે માટે 2 અદલબદલ અને 1 સ્વેપ કરવાની જરૂર જઈ રહ્યાં છો.
હું માનું છે કે છેલ્લા એક અથવા થવું જરૂર પડી શકે છે પણ શકે અને ન ખરેખર.
તે સ્વેપ છે? મને ખબર નથી.
તેથી આ અદલબદલ ની કુલ રકમ અથવા ઓછામાં ઓછું સરખામણીઓ તમે બનાવવા માટે હોય છે.
જો તમે સ્વેપ કરશો નહીં હોય, તો તમે હજુ પણ કિંમતો તુલના કરવાની જરૂર છે.
તેથી ત્યાં n છે - એરે મારફતે પ્રથમ રન 1 માં સરખામણીઓ.
જો તમે આ બાબતો ફરીથી ગોઠવવા, ચાલો વાસ્તવમાં તે છ વસ્તુઓ બનાવવા જેથી વસ્તુઓ ઉપર સાવધાનીપૂર્વક ગંજી,
અને પછી હું 3 કરવા માટે, 2 પડશે, 1.
તેથી માત્ર આ રકમનું ફેર ગોઠવણી, અમે જોવા માટે કેટલા સરખામણીઓ અમે બનાવવા માંગો છો
સમગ્ર અલ્ગોરિધમનો છે.
તેથી જો આપણે નીચે અહીં આ ગાય્સ લાવવા,
પછી અમે હજુ હમણાં જ કરી રહ્યાં છો તેમ છતાં ઘણા સરખામણીઓ હતી એકત્ર.
પરંતુ જો આપણે આ સંક્ષેપમાં અને અમે આ સંક્ષેપમાં અને અમે આ સંક્ષેપમાં,
તે હજુ પણ એ જ સમસ્યા છે. અમે હમણાં જ તે ચોક્કસ જૂથો સરવાળો.
>> તેથી હવે અમે 3 n હિસ્સો એકત્ર કરી રહ્યા છીએ. તે માત્ર 3 n હિસ્સો નથી.
તે હંમેશા n / 2 n એ જ હશે.
અહીં અમે 6 પાસે થાય છે.
જો અમે 10 બાબતો હતી, તો પછી અમે વસ્તુઓ વિવિધ 5 જોડીઓ માટે આ જૂથ કરી શકે
અને n + n n + + n + n સાથે અંત.
તેથી તમે હંમેશા n / 2 n એ વિચાર જઈ રહ્યાં છો, અને તેથી આ અમે તેને / 2 સ્ક્વેર્ડ n એ બહાર નોંધી લેવું પડશે.
અને તેથી ભલે તે અડધી જ પરિબળ છે, કે જે આવે છે આવું થાય છે
એ હકીકત છે કે જે એરે પર દરેક ઇટરેશન મારફતે અમે 1 ઓછા સરખાવવા કારણે
જેથી તે કેવી રીતે અમે 2 પર વિચાર કરે છે, પરંતુ તે હજુ પણ સ્ક્વેર્ડ n છે.
અમે અડધી સતત પરિબળ વિશે કાળજી નથી.
તેથી આ જેવા મોટા ઓ સામગ્રી ઘણો ગણિત આ પ્રકારની કરી ફક્ત પ્રકારની પર આધાર રાખે છે,
અંકગણિત અને ભૌમિતિક રકમો શ્રેણી સામગ્રી કરવું,
પરંતુ આ કોર્સમાં તેમાંના મોટા ભાગના ખૂબ સરળ છે.
ઠીક છે.
N ના ઓમેગા માં દાખલ સૉર્ટ શા માટે છે? ઓમેગા શું અર્થ છે?
[બે વાર બોલતાં વિદ્યાર્થીઓ - દુર્બોધ] >> યાહ.
તમે ઓમેગા તરીકે નીચલા બંધાયેલ વિચાર કરી શકો છો.
>> તેથી કોઇ બાબત કાર્યક્ષમ કેવી રીતે તમારા નિવેશ સૉર્ટ એલ્ગોરિધમ છે,
યાદી છે કે જે પસાર છે અનુલક્ષીને, તે હંમેશા n એ ઓછામાં ઓછા વસ્તુઓ સરખાવવા છે
અથવા તેને n એ વસ્તુઓ ઉપર ફરી વળવું છે.
કે શા માટે છે?
[વિદ્યાર્થી] કારણ કે જો યાદી પહેલેથી સૉર્ટ થાય છે, પછી મારફતે પ્રથમ પુનરાવૃત્તિ
તમે માત્ર ગેરંટી છે કે ખૂબ જ પ્રથમ તત્વ ઓછામાં ઓછી છે,
અને બીજા પુનરાવૃત્તિ તમે માત્ર બાંયધરી પ્રથમ બે શકે છે
કારણ કે તમને ખબર નહિં હોય કે જે યાદી બાકીના સૉર્ટ થાય છે. >> યાહ.
જો તમે સંપૂર્ણપણે છટણી યાદીમાં ખૂબ ઓછામાં ઓછા પાસ તમે ઉપર તમામ તત્વો જવું પડે
જોવા માટે કંઈ આસપાસ ખસેડવામાં આવશે જરૂર છે.
તેથી ઉપર યાદી પસાર થાય અને કહેતા ઓહ, આ પહેલેથી જ છટણી કરવામાં આવે છે,
તે અશક્ય છે માટે તમે તે જાણવા માટે છટણી છે ત્યાં સુધી તમે દરેક તત્વ તપાસો
એ જોવા માટે કે તેઓ ક્રમમાં હોય છે.
તેથી દાખલ સૉર્ટ પર બંધાયેલ નીચા n ના ઓમેગા છે.
ખરાબ કેસ શું મર્જ પ્રકારના સમય ચાલી રહ્યો છે,
ખરાબમાં ખરાબ કિસ્સામાં મોટી ઓ ફરીથી છે?
તેથી ખરાબ કેસ કિસ્સાઓમાં, કેવી રીતે મર્જ સૉર્ટ સ્કોર કરતું નથી?
[વિદ્યાર્થી] એન લોગ એન. >> યાહ.
સૌથી ઝડપી સામાન્ય સોર્ટિંગ એલ્ગોરિધમ્સ n લોગ n છે. તમે વધુ સારી રીતે નથી કરી શકો છો.
>> ત્યાં ખાસ કિસ્સાઓમાં હોય છે, અને જો આપણે આજે સમય છે - પરંતુ અમે કદાચ won't -
આપણે એક કે n લોગ n એ કરતાં વધુ સારી કરે જોવા મળશે.
પરંતુ સામાન્ય કિસ્સામાં, તમે n લોગ n એ કરતાં વધુ સારું ન કરી શકો છો.
અને મર્જ સૉર્ટ કરવા માટે એક તમે આ કોર્સ કે n લોગ n છે જાણવું જોઈએ બને છે.
અને તેથી, જે આજે આપણે ખરેખર અમલમાં આવશે.
અને છેલ્લે, હવે વધુ ત્રણ કરતાં વાક્યો, પસંદગી કેવી રીતે સૉર્ટ કામ કરે છે?
નથી કોઇ જવાબ માંગો છો, અને હું તમારી વાક્યો ગણતરી પડશે
કારણ કે જો તમે 3 પર જાઓ -
શું કોઇને પસંદગી સૉર્ટ યાદ?
પસંદગી સૉર્ટ સામાન્ય રીતે ખૂબ સરળ નામ પરથી ફક્ત યાદ કરે છે.
તમે હમણાં જ એરે પર ફરી વળવું, ગમે તે સૌથી મોટું મૂલ્ય છે અથવા નાના શોધવા -
હુકમ ગમે તમે સાઇન સૉર્ટ કરી રહ્યા છો
તેથી આપણે કહેવું અમે માંથી નાનું મહાન માટે સૉર્ટ કરી રહ્યા છો.
તમે એરે પર ફરી વળવું, ગમે લઘુત્તમ તત્વ છે looking,
તે પસંદ કરો, અને પછી ફક્ત તેને સ્વેપ ગમે તે પ્રથમ સ્થાને છે.
અને પછી એરે પર બીજા પાસ પર, લઘુત્તમ તત્વ માટે ફરીથી જુઓ,
તે પસંદ કરો, અને પછી તે શું બીજા સ્થિતિમાં સાથે સ્વેપ.
તેથી અમે માત્ર અને ચૂંટવું છે લઘુત્તમ કિંમતો પસંદ
અને તેમને એરે આગળના પ્રવેશ કરો ત્યાં સુધી તે છૂટાં પાડવામાં આવે છે.
પર પ્રશ્નો?
>> આ અનિવાર્યપણે સ્વરૂપો તમે ભરો જ્યારે તમે pset સબમિટ કરી રહ્યાં છો પાસે દેખાય છે.
તે મૂળભૂત રીતે તે માટે જવાબો.
ઠીક છે, તેથી હવે સમસ્યાઓ કોડિંગ.
હું પહેલેથી જ ઈમેઇલ પર બહાર મોકલવામાં - શું કોઈને પણ તે ઇમેઇલ વિચાર નથી? ઠીક છે.
હું પહેલેથી જ ઈમેઇલ પર આઉટ જગ્યા કે અમે ઉપયોગ કરી રહ્યા છીએ મોકલ્યો,
અને જો તમે મારા નામ પર ક્લિક કરો - જેથી મને લાગે છે કે હું તળિયે પ્રયત્ન જાઉં છું
કારણ કે પાછળની r ની - પરંતુ જો તમે મારું નામ પર ક્લિક કરો તમે 2 આવૃત્તિઓ જોશો.
1 પુનરાવર્તન માટે હું પહેલેથી જ નકલ કરી અને Spaces માં કોડ પેસ્ટ રહ્યું છે
શોધ વસ્તુ માટે તમે અમલ કરવા માટે હોય રહ્યા છીએ.
અને 2 પુનરાવર્તન આ પ્રકારની વસ્તુ છે કે અમે તે પછી અમલમાં રહેશે.
તેથી તમે મારા 1 પુનરાવર્તન પર ક્લિક કરો અને ત્યાંથી કામ કરી શકો છો.
અને હવે અમે દ્વિસંગી શોધ અમલ કરવા માંગો છો.
>> શું કોઇને માટે માત્ર એક સ્યુડોકોડનો સમજૂતી ઉચ્ચ સ્તરીય આપવા માંગો છો
શું અમે માટે શોધ માટે કરો જઈ રહ્યાં છો? યાહ.
[વિદ્યાર્થી] તમે ફક્ત એરે મધ્યમાં લાગી અને જુઓ કે તમે શું શોધી રહ્યાં છો
કરતાં ઓછા અથવા તે કરતાં વધુ છે.
અને જો તે ઓછી છે, તો તમે અડધા કે ઓછું કરવા માટે જાય છે,
અને જો તે વધુ છે, તો તમે અડધા વધુ છે જાઓ અને તમે પુનરાવર્તન કે જ્યાં સુધી તમે ફક્ત એક વસ્તુ છે.
[બોડેન] યાહ.
નોંધ કરો કે અમારા નંબરો એરે પહેલાથી જ છટણી કરવામાં આવે છે,
અને જેથી અર્થ એ છે કે અમે તે લાભ લેવા અને અમે પ્રથમ તપાસ કરી શકે છે શકે છે,
ઠીક, હું 50 નંબર શોધી રહ્યો છું.
તેથી હું મધ્યમ માં જઈ શકો છો.
મધ્યમ મુશ્કેલ છે વ્યાખ્યાયિત ત્યારે તે વસ્તુઓને એક પણ નંબર છે,
પરંતુ આપણે માત્ર કહેવું આપણે હંમેશા મધ્યમાં ટૂંકાવીને પડશે.
અહીં અમે 8 વસ્તુઓ હોય છે, તેથી મધ્ય 16 હશે.
હું 50 શોધી રહ્યો છું, તેથી 50 16 કરતા વધારે છે.
તેથી હવે હું મૂળભૂત આ તત્વોની તરીકે મારા એરે સારવાર કરી શકે છે.
હું દૂર 16 થી ઉપર બધું ફેંકવું કરી શકો છો.
હવે મારી એરે ફક્ત આ 4 તત્વો, અને હું પુનરાવર્તન કરો.
તેથી પછી હું મધ્યમ ફરીથી શોધવા માંગતા હો, કે જે 42 પ્રયત્ન રહ્યું છે.
42 50 કરતાં ઓછી હોય છે, તેથી હું દૂર આ બે તત્વો ફેંકવું કરી શકો છો.
આ મારા બાકીના એરે છે.
હું મધ્યમ ફરીથી શોધવા જાઉં છું.
હું માનું 50 ખરાબ ઉદાહરણ હતા કારણ કે હું હંમેશા દૂર ફેંકવાની હતી ડાબી વસ્તુઓ,
પરંતુ એ જ માપ છે, જો હું કંઈક શોધી રહ્યો છું
અને તે તત્વ કરતાં ઓછી હું હાલમાં જોઈ રહ્યો છું,
પછી હું દૂર જમણી બધું ફેંકવું જાઉં છું.
તેથી હવે અમે તે અમલીકરણની જરૂર છે.
નોંધ કરો કે અમે કદ પાસ કરવાની જરૂર છે.
અમે પણ હાર્ડ કોડ માપ જરૂર નથી કરી શકો છો.
તેથી જો અમે તે છૂટકારો મેળવવા # વ્યાખ્યાયિત -
ઠીક છે.
હું સરસ રીતે કેવી રીતે બહાર આકૃતિ કરી શકો છો નંબરો એરે કદ અત્યારે છે?
>> કેટલા તત્વો નંબરો એરે છે?
[વિદ્યાર્થી] નંબર્સ, કૌંસ, લંબાઈ.
[બોડેન] તે સી માં અસ્તિત્વમાં નથી
જરૂર છે. રન નોંધાયો નહીં.
એરે ગુણધર્મો ન હોય, જેથી ત્યાં એરે કોઈ લંબાઈ મિલકત છે
કે જે હમણાં જ તમે તેમ છતાં લાંબા તે બને આપશે.
[વિદ્યાર્થી] જુઓ કેટલી મેમરી તે છે અને કેટલી દ્વારા વિભાજીત - >> યાહ.
તેથી અમે કેવી રીતે જુઓ કેટલી મેમરી તે છે કરી શકો છો? >> [વિદ્યાર્થી] Sizeof. >> અરે વાહ, sizeof.
Sizeof ઓપરેટર કે જે નંબરો એરે માપ પરત ચાલી રહ્યું છે છે.
અને તે માટે આમ છતાં ઘણા પૂર્ણાંકો જ હશે ત્યાં વખત પૂર્ણાંક માપ છે
કારણ કે તે છે કેટલી મેમરી વાસ્તવમાં તે લે છે.
, તેથી જો હું એરે વસ્તુઓ સંખ્યા માંગો છો
પછી હું પૂર્ણાંક માપ દ્વારા વિભાજીત કરવા માંગો છો જાઉં છું.
ઠીક છે. જેથી દે મને કદ અહીં પસાર કરે છે.
હું કદ તમામ અંતે પસાર શા માટે જરૂરી છે?
મેં હમણાં જ કેમ નથી અહીં કરી શકો છો પૂર્ણાંક કદ = (haystack) sizeof / sizeof (પૂર્ણાંક)?
આ શા માટે કામ નથી?
[વિદ્યાર્થી] તે એક વૈશ્વિક ચલ નથી.
[બોડેન] Haystack અસ્તિત્વમાં છે અને અમે સંખ્યામાં haystack તરીકે પસાર કરી રહ્યાં છો,
અને આ શું આવે છે તે foreshadowing પ્રકારની છે. યાહ.
[વિદ્યાર્થી] Haystack માત્ર તે સંદર્ભ છે, તેથી તે પાછો આવશે મોટું કેવી રીતે સંદર્ભ છે.
યાહ.
હું વ્યાખ્યાન માં શંકા છે કે તમે સ્ટેક જોઇ છે હજુ સુધી ખરેખર યોગ્ય?
અમે હમણાં જ તેના વિશે બોલાય કર્યું છે.
તેથી સ્ટેક છે કે જ્યાં તમારા ચલો બધી સંગ્રહિત કરવામાં જવું છે.
>> કોઈપણ મેમરી કે સ્થાનિક ચલો માટે ફાળવવામાં આવ્યું છે તે સ્ટેક થઇ રહ્યું છે,
અને દરેક કાર્ય સ્ટેક પર તેની પોતાની જગ્યા મળે છે, તેની પોતાની સ્ટેક ફ્રેમ છે જે તે કહે છે.
તેથી મુખ્ય તેના સ્ટેક ફ્રેમ હોય છે, અને તે અંદર આ નંબરો એરે અસ્તિત્વમાં રહ્યું છે,
અને તે માપ sizeof (સંખ્યાઓ) ની જ હશે.
તે તત્વોનું માપ દ્વારા વિભાજી નંબરો કદ હોય ચાલી રહ્યું છે,
પરંતુ મુખ્ય સ્ટેક ફ્રેમ અંદર તમામ જીવન છે.
જ્યારે અમે શોધ કૉલ, શોધો પોતાના સ્ટેક ફ્રેમ નહીં,
તેની પોતાની જગ્યા તેની સ્થાનિક ચલો તમામ સંગ્રહવા માટે.
પરંતુ આ દલીલો - તેથી haystack આ સમગ્ર એરે એક નકલ નથી.
અમે શોધ એક નકલ તરીકે સમગ્ર એરે માં પાસ કરતું નથી.
તે માત્ર કે એરે સંદર્ભ પસાર કરે છે.
તેથી શોધ આ સંદર્ભ દ્વારા આ નંબરો ઍક્સેસ કરી શકો છો.
તે હજુ વસ્તુઓ કે મુખ્ય સ્ટેક ફ્રેમ ની અંદર રહે છે ઍક્સેસ છે,
પરંતુ મૂળભૂત રીતે, જ્યારે અમે પોઇંટરો મેળવવા, જે ટૂંક સમયમાં જ હોવો જોઈએ,
આ છે પોઇંટરો શું છે.
પોઇન્ટર ફક્ત વસ્તુઓ સંદર્ભો, અને તમે પોઇંટરો વાપરવા માટે વસ્તુઓ ઍક્સેસ કરી શકો છો
કે અન્ય વસ્તુઓ સ્ટેક ફ્રેમમાં છે.
તેથી ભલે નંબરો મુખ્ય સ્થાનિક છે, અમે હજુ પણ તેને આ નિર્દેશક દ્વારા ઍક્સેસ કરી શકો છો.
પરંતુ કારણ કે તે માત્ર એક નિર્દેશક છે અને તે માત્ર એક સંદર્ભ છે,
sizeof (haystack) માત્ર સંદર્ભ પોતાના કદ આપે છે.
તે વસ્તુ તેને પોઇન્ટ છે કદ નહિં આપે.
તે નંબરો ના વાસ્તવિક કદ નહિં આપે.
અને તેથી આ કામ નથી જવાનું અમે તેને કરવા માંગો છો છે.
>> પર પ્રશ્નો?
પોઇન્ટર નોંધપાત્ર વધુ લોહીલુહાણ વિગતવાર માં જતા રહેશે અઠવાડિયા માટે આવે છે.
અને આ છે શા માટે વસ્તુઓ છે કે જે તમે જુઓ છો, મોટાભાગના શોધ વસ્તુઓ અથવા પ્રકારની વસ્તુઓ,
તેઓ લગભગ તમામ માટે એરે ના વાસ્તવિક કદ લેવાની જરૂર જઈ રહ્યાં છો,
સી કારણ કે, અમે કોઈ વિચાર એરે માપ શું છે.
તમે તેને જાતે પસાર સાઇન કરવાની જરૂર છે
અને તમે જાતે સમગ્ર એરે નથી પસાર કારણ કે તમે ફક્ત સંદર્ભ માં પસાર કરી શકો છો
અને તે સંદર્ભ ના કદ ન મળી શકે.
ઠીક છે.
તેથી હવે અમે અમલ કરવા માટે શું પહેલાં સમજાવી હતી માંગો છો.
તમે તેની પર એક મિનિટ માટે કામ કરી શકે છે,
અને તમે 100% સંપૂર્ણ બધું કામ વિશે ચિંતા કરવાની જરૂર નથી.
હમણાં તમે કેવી રીતે લાગે છે કે તે કામ જોઈએ અડધા સ્યુડોકોડનો લખો.
ઠીક છે.
કોઈ સંપૂર્ણપણે આ સાથે હજુ સુધી પૂર્ણ કરવાની જરૂર છે.
પરંતુ કોઈને તેઓ જે અત્યાર સુધી તમારી પાસે છે આરામદાયક લાગે છે નથી,
કંઈક જેમ અમે સાથે સાથે કામ કરી શકે છે?
શું કોઇને માટે સ્વયંસેવક કરવા માંગો છો? અથવા હું રેન્ડમ પસંદ કરશે.
તેને કોઈ પણ પગલા પરંતુ કંઈક કામ સ્થિતિમાં ફેરફાર કરી શકે છે દ્વારા અધિકાર નથી.
[વિદ્યાર્થી] શ્યોર. ઠીક છે. >>
જેથી તમે થોડી સેવ ચિહ્ન પર ક્લિક કરીને પુનરાવર્તન સાચવી શકો છો.
તમે રમ્યાનો સાચા છો? >> [વિદ્યાર્થી] યાહ. >> [બોડેન] ઠીક.
તેથી હવે હું તમારી પુનરાવર્તન જોવા અને દરેકને અપ પુનરાવર્તન ખેંચી શકે છે.
અને અહીં અમે હોય - ઠીક છે.
તેથી રમ્યાનો ફરી યાદ આવવું ઉકેલ છે, કે જે ચોક્કસપણે એક માન્ય ઉકેલ સાથે ગયા હતા.
ત્યાં બે માર્ગો તમે આ સમસ્યા શું કરી શકો છો.
તમે ક્યાં તો તેને iteratively અથવા recursively કરી શકો છો.
સૌથી વધુ સમસ્યાઓ તમે અનુભવી કે recursively કરી શકાય છે પણ iteratively પણ કરી શકાય છે.
અહીં અમે તેને recursively કર્યું છે.
>> નથી કોઇ વ્યાખ્યાયિત તે શું કાર્ય ફરી યાદ આવવું બનાવવા અર્થ છે કરવા માંગો છો?
[વિદ્યાર્થી] જ્યારે તમે કાર્ય હોય પોતે કહી
અને પછી પોતે કહી સુધી તે વાત સાચી અને સત્ય બહાર આવે. >> યાહ.
એ યાદ આવવું કાર્ય માત્ર એક કાર્ય જે પોતે કહે છે.
ત્યાં ત્રણ મોટી વસ્તુઓ છે કે જે એક યાદ આવવું કાર્ય હોવી જ જોઈએ છે.
પ્રથમ દેખીતી રીતે છે, તે પોતે કહે છે.
બીજા આધાર હોય છે.
જેથી કેટલાક સમયે કાર્ય કરવા માટે પોતે ફોન કરવાનું બંધ કરવાની જરૂર છે,
અને કે આધાર કેસ શું છે.
અહીં આપણે જાણીએ છીએ કે અમે બંધ કરવું જોઈએ, અમે અમારી શોધ માં આપવી જોઇએ
જ્યારે શરૂઆત ઓવરને સમકક્ષ - અને આપણે પર જાઓ કે શું અર્થ થાય છે પડશે.
પરંતુ આખરે, છેલ્લા વસ્તુ કે ફરી યાદ આવવું કાર્યો માટે મહત્વપૂર્ણ છે:
કાર્યો કોઈક આધાર કેસ સંપર્ક જ જોઈએ.
ગમે જો તમે ખરેખર કંઈપણ સુધારવાનું કરી રહ્યા છીએ જ્યારે તમે બીજી ફરી યાદ આવવું કૉલ કરવા માટે,
જો તમે શાબ્દિક માત્ર રહ્યાં છો તે કાર્ય ફરી કૉલ જ દલીલો સાથે
અને કોઈ વૈશ્વિક ચલો બદલી છે અથવા કંઈપણ
તમે કેસ કે ખરાબ છે કે જેમાં. આધાર કેસ સુધી કદી પહોંચશે જ નહીં,
તે અનંત રિકર્ઝન અને સ્ટેક ઓવરફ્લો થશે.
પરંતુ, અહીં આપણે જુઓ કે સુધારા થી અમે શરૂ + 2 / ઓવરને અપડેટ કરવામાં આવે છે થઈ રહ્યું છે,
અમે ઓવરને દલીલ અપડેટ કરી રહ્યાં છે અહીં, અમે શરૂઆત દલીલ અપડેટ કરી રહ્યાં છો અહીં.
તેથી એ બધા યાદ આવવું કોલમાં અમે કંઈક અપડેટ કરવામાં આવે છે. ઠીક છે.
શું તમે અમને તમારી ઉકેલ લઈ જવામાં કરવા માંગો છો? શ્યોર. >>
હું SearchHelp ઉપયોગ કરું છું, કે જેથી દર વખતે હું આ વિધેય કોલ કરો
હું એરે માં શોધી રહ્યો છું શરૂઆત અને અંત છે
જ્યાં મેં એરે શોધી રહ્યો છું.
>> દરેક પગલું જ્યાં તે કહેતા છે તે મધ્યમ તત્વ, + સામેલ છે જે શરૂઆત છે / 2 ઓવરને અંતે છે,
એટલે કે આપણે શું શોધી રહ્યાં છો તે સમાન?
અને જો તે હોય, તો પછી અમે તેને જોવા મળે છે, અને હું માનું છે કે પુનરાવર્તનના સ્તર પસાર નહીં.
અને જો તે સાચું નથી, તો પછી અમે કે કેમ તેની તપાસ એરે કે મધ્યમ કિંમત ખૂબ મોટી છે,
જેમાં કેસ અમે શરૂઆતથી મધ્ય ઇન્ડેક્સ જઈને એરે ડાબી અડધા જુઓ.
અને અન્યથા અમે ઓવરને અડધા નથી.
[બોડેન] ઠીક.
કે સારા લાગે છે.
ઠીક છે, બે વસ્તુઓ, અને તેથી વાસ્તવમાં, આ એક ઉચ્ચ સ્તર ખૂબ જ વસ્તુ છે
તમે આ કોર્સ માટે ખબર ક્યારેય જરૂર છે, પરંતુ તે સાચું છે.
ફરી યાદ આવવું કાર્યો, તો તમે હંમેશા સાંભળવા કે તેઓ ખરાબ સોદો છો
કારણ કે જો તમે recursively જાતને ઘણી વાર કહે છે, તમે સ્ટેક ઓવરફ્લો વિચાર
કારણ કે, મને પહેલાં જણાવ્યું હતું કે, દરેક કાર્ય પોતાના સ્ટેક ફ્રેમ નોંધાયો નહીં.
તેથી ફરી યાદ આવવું કાર્ય દરેક કોલ પોતાના સ્ટેક ફ્રેમ નોંધાયો નહીં.
તેથી જો તમે 1,000 ફરી યાદ આવવું કૉલ્સ કરવા માટે, તમે 1,000 સ્ટેક ફ્રેમ્સ વિચાર,
અને ઝડપથી તમે કર્યા ઘણા સ્ટેક ફ્રેમ્સ અને વસ્તુઓ માત્ર તોડી શકે છે.
તેથી કે શા માટે ફરી યાદ આવવું વિધેયો સામાન્ય રીતે ખરાબ હોય છે.
પરંતુ ત્યાં ફરી યાદ આવવું વિધેયો એક સરસ ઉપગણ tail-ફરી યાદ આવવું વિધેયો કહે છે,
અને આ એક જ્યાં જો કમ્પાઇલર આ જોયો ઉદાહરણ બને છે
અને તે જોઈએ, મને લાગે છે - ખણખણાટ તો તમે તેને ધ્વજ ધ O2 પસાર
પછી તેને આ પૂંછડી ફરી યાદ આવવું છે નોટિસ અને વસ્તુઓ સારી કરશે.
>> તે દરેક ફરી યાદ આવવું કોલ માટે ઉપર અને ઉપર ફરીથી જ સ્ટેક ફ્રેમ ફરીથી ઉપયોગ કરશે.
અને તેથી કારણ કે તમે એ જ સ્ટેક ફ્રેમ ઉપયોગ કરી રહ્યાં છો, તો તમે તેના વિશે ચિંતા કરવાની જરૂર નથી
અત્યાર વહેતું ગંજી, અને એ જ સમયે, જેમ કે તમે પહેલાં જણાવ્યું હતું કે,
એકવાર તમે જ્યાં સાચું પરત, પછી તે માટે આ સ્ટેક ફ્રેમ્સ તમામ પાછા છે
અને SearchHelp માટે 9 પર પાછા છે 10 મી કૉલ કરવા માટે, 8 પર પાછા છે.
તેથી કે જે થાય છે જ્યારે વિધેયો પૂંછડી ફરી યાદ આવવું છે જરૂર નથી.
અને તેથી આ કાર્ય પૂંછડી ફરી યાદ આવવું બનાવે છે શું સૂચના છે કે કોઈ પણ searchHelp માટે કોલ
ફરી યાદ આવવું કોલ કે તે બનાવે છે તે શું પરત છે.
તેથી SearchHelp પ્રથમ કોલ, અમે ક્યાં તરત જ ખોટા પાછા ફરવા માટે,
તરત જ સાચું પરત, અથવા આપણે SearchHelp માટે ફરી યાદ આવવું કૉલ
જ્યાં અમે પરત કરી રહ્યાં છો શું છે તે કોલ શું પરત આવે છે.
અને અમે આ ન હોય તો અમે પૂર્ણાંક એક્સ વળતર SearchHelp = x * 2 કંઈક કર્યું શકે છે,
માત્ર કેટલાક રેન્ડમ ફેરફાર.
>> તેથી હવે આ ફરી યાદ આવવું કોલ, આ પૂર્ણાંક એક્સ = SearchHelp ફરી યાદ આવવું કોલ,
લાંબા સમય સુધી પૂંછડી છે કારણ કે તે ફરી યાદ આવવું ખરેખર પર પાછા નથી
પાછા પાછલા સ્ટેક ફ્રેમ કે જેથી કામ કરવા માટે કે જે પહેલાનાં કોલ
પછી વળતર કિંમત સાથે કંઈક કરી શકો છો.
તેથી આ યાદ આવવું પૂંછડી નથી, પરંતુ અમે શું પહેલાં સરસ રીતે ફરી યાદ આવવું પૂંછડી છે. યાહ.
[વિદ્યાર્થી] બીજા આધાર કેસ નથી ફર્સ્ટ ચેક જોઇએ
કારણ કે ત્યાં એક પરિસ્થિતિ હોઈ શકે કે જ્યાં જ્યારે તમે તે દલીલ પસાર કરી શકે છે
તમે = ઓવરને શરૂ કર્યું છે, પરંતુ તેઓ સોય કિંમત હોય છે.
પ્રશ્ન કેસ માં ચલાવી શકો છો ન હતી અમે જ્યાં અંત થાય છે તે સોય કિંમત છે
અથવા = ઓવરને શરૂ કરવા માટે, યોગ્ય, = ઓવરને શરૂ
અને તમે ખરેખર તે ચોક્કસ કિંમત હજુ સુધી ચકાસાયેલ નથી,
પછી + 2 / ઓવરને શરૂ માત્ર એ જ કિંમત પ્રયત્ન રહ્યું છે.
પરંતુ અમે પહેલાથી જ ખોટા પરત કરી છે અને અમે કિંમત ખરેખર ક્યારેય ચકાસાયેલ.
તેથી ખૂબ જ ઓછામાં ઓછા, પ્રથમ કોલ, જો માપ 0 છે, તો પછી અમે ખોટા પરત કરવા માંગો છો.
પરંતુ જો માપ 1 હોય, તો પછી પ્રારંભ સમાન અંત નથી રહ્યું છે,
અને અમે ઓછામાં ઓછી એક તત્વ તપાસ કરીશું.
પરંતુ મને લાગે છે કે તમે યોગ્ય છે કે આપણે એક કેસ સમાપ્ત જ્યાં + 2 / ઓવરને શરૂ કરી શકો છો,
ઊગતી + + શરૂઆત / 2 ઓવરને તરીકે જ હોવા અંત થાય છે,
પરંતુ અમે તે તત્વ ખરેખર ક્યારેય ચકાસાયેલ.
>> તેથી અમે પ્રથમ ચકાસો જો મધ્યમ તત્વ કિંમત અમે શોધી રહ્યાં છો તે છે,
તો પછી અમે તરત જ સાચું પાછા આવી શકો છો.
બાકી જો તેઓ સમાન છો, તો પછી ત્યાં ચાલુ કોઇ બિંદુ
કારણ કે અમે હમણાં જ એક કેસ જ્યાં અમે એક એરે એક તત્વ પર હોય છે અપડેટ કરવા જઈ રહ્યાં છો.
જો કે એક તત્વ એક અમે શોધી રહ્યાં છો તે નથી,
પછી બધું ખોટું છે. યાહ.
[વિદ્યાર્થી] આ બાબત એ છે કે કદ થી ખરેખર એરે માં સંખ્યાબંધ તત્વો કરતાં વધારે છે,
ત્યાં પહેલેથી જ છે એક ઓફસેટ - >> તેથી કરશે કદ -
[વિદ્યાર્થી] સે જો એરે 0 કદ હતી, પછી SearchHelp ખરેખર 0 ની haystack તપાસ કરશે
પ્રથમ કોલ પર.
એરે 0 માપ છે, તેથી એ 0 છે - >> યાહ.
ત્યાં બીજી ચીજ છે કે - તે સારી પણ હોઈ શકે છે. ચાલો વિચારો.
તેથી જો એરે 10 તત્વો હતા અને મધ્યમ એક અમે તપાસ જઈ રહ્યાં છો 5 અનુક્રમણિકા છે,
તેથી અમે 5 ચકાસણી કરી રહ્યાં છો, અને ચાલો કહેવું છે કે કિંમત ઓછી છે.
તેથી અમે બધું ફેંકવાની કરી રહ્યાં છો દૂર 5 થી.
તેથી શરૂ + 2 / ઓવરને માટે અમારા નવા અંત રહ્યું છે,
હા, જેથી તે હંમેશા માટે એરે અંત સુધી રહેવા ચાલી રહ્યું છે.
જો તે કેસ છે, જો તે એકી કે બેકી હતી, તો પછી અમે તે ચકાસવા માટે, કહેવું કરશે 4,
પરંતુ અમે હજુ પણ દૂર ફેંકવાની કરી રહ્યા છીએ -
હા તેથી, ઓવરને હંમેશા એરે ના વાસ્તવિક ઓવરને બહાર જઈ રહ્યું છે.
તત્વો પર અમે ધ્યાન કેન્દ્રિત કરવામાં આવે છે, જેથી ઓવરને હંમેશા કે પછી એક પ્રયત્ન રહ્યું છે.
અને તેથી જો પ્રારંભ ક્યારેય સમાન ઓવરને કરે છે, અમે 0 કદ ઝાકઝમાળ છે.
>> અન્ય વસ્તુ હું વિચારતી હતી કે અમે શરૂઆત અપડેટ કરવામાં આવે છે શરૂ કરી + 2 / ઓવરને,
તેથી આ કિસ્સામાં કે હું મુશ્કેલી સાથે રહી છું, જ્યાં + + ઓવરને / 2 શરૂ છે
તત્વ અમે ચકાસણી કરી રહ્યા છીએ છે.
હવે કહો કે અમે આ એરે 10-તત્વ હતી. ગમે.
તેથી શરૂ + 2 / ઓવરને માટે આ કંઈક પ્રયત્ન રહ્યું છે,
અને જો કે મૂલ્ય નથી કહેવું, અમે અપડેટ કરવા માંગો છો.
આ કિંમત વધારે હોય છે, તેથી અમે એરે આ અડધી જોવા માંગો છો.
તેથી અમે કેવી રીતે શરૂઆત અપડેટ કરી રહ્યાં છો, તો અમે શરૂઆત અપડેટ કરી રહ્યા છીએ હવે આ તત્વ છે.
પરંતુ આ હજુ પણ કામ શકો છો, અથવા અત્યંત ઓછામાં ઓછા, તમે શરૂઆત કરી + / ઓવરને + 2 1 શકો છો.
[વિદ્યાર્થી] તમે + + ઓવરને શરૂ કરી જરૂર નથી [અશ્રાવ્ય] >> યાહ.
અમે પહેલાથી જ આ તત્વ ચકાસાયેલ નથી અને ખબર તે એક અમે શોધી રહ્યાં છો તે નથી.
તેથી અમે શરૂઆત અપડેટ કરવા માટે આ તત્વ પ્રયત્ન કરવાની જરૂર નથી.
અમે હમણાં જ તે અવગણો કરી શકો છો અને આ તત્વ પ્રયત્ન શરૂ સુધારો.
અને ત્યાં ક્યારેય કેસ છે, ચાલો કહે છે કે આ ઓવરને હતા,
જેથી તે પછી શરૂ આ હશે, + ઓવરને શરૂ / 2 આ હશે,
+ ઓવરને શરૂ - અરે વાહ, મને લાગે છે કે તે અનંત રિકર્ઝન માં સમાપ્ત કરી શકો છો.
હવે કહો કે તે માત્ર 2 કદ અથવા કદ 1 નું ઝાકઝમાળ ઝાકઝમાળ છે. મને લાગે છે કે આ જ કામ કરશે.
તેથી હાલમાં, પ્રારંભ છે કે તત્વ અને ઓવરને 1 તેને બહાર છે.
તેથી તત્વ કે અમે તપાસ જઈ રહ્યાં છો અને આ એક છે,
અને પછી જ્યારે અમે શરૂઆત સુધારવા માટે, અમે શરૂઆત અપડેટ કરી રહ્યા છીએ 0 + 1/2 હોઇ શકે છે,
જે અમને શરૂઆત આ તત્વ હોવા સાથે પાછા અંત રહ્યું છે.
>> તેથી અમે ઉપર અને ઉપર ફરીથી એ જ તત્વ ચકાસણી કરી રહ્યા છીએ.
તેથી આ કિસ્સામાં જ્યાં દરેક ફરી યાદ આવવું કોલ ખરેખર કંઈક અપડેટ જ જોઈએ.
તેથી અમે + + શરૂઆત / અંતે 2 + 1 બીજું, અથવા જરૂર ત્યાં એક કેસ છે
અમે ખરેખર જ્યાં શરૂઆત નથી અપડેટ કરી રહ્યાં છો.
દરેક જુઓ છો?
ઠીક છે.
શું કોઇને આ ઉકેલ છે, અથવા કોઇ વધુ ટિપ્પણીઓ પર પ્રશ્નો છે?
ઠીક છે. શું કોઇને એક ઉકેલ છે કે અમે બધા પર નજર કરી શકો છો પુનરાવર્તન છે?
શું આપણે બધા recursively છે?
અથવા પણ હું માનું જો તમે hers ખોલી, તો પછી તમે ફરીથી લખાઈ તમારા પહેલાંના એક હોય શકે છે.
એ નથી કે તે આપોઆપ સાચવે? હું સકારાત્મક નથી.
શું કોઇને પુનરાવર્તન છે?
અમે તેના દ્વારા એક સાથે ચાલવા જો ન કરી શકે છે.
આ વિચાર એ જ પ્રયત્ન રહ્યું છે.
ઉકેલ પુનરાવર્તન.
અમે માટે મૂળભૂત રીતે જ વિચાર કરવા માંગો છો જઈ રહ્યાં છો
જ્યાં અમે એરે નવા ઓવરને ટ્રેક અને એરે નવા પ્રારંભ રાખવા માંગો છો
અને તે શું પર અને ઉપર.
અને આપણે જે ટ્રેક શરૂઆત અને અંત ક્યારેય છેદાય તરીકે રાખી રહ્યાં જો,
પછી અમે તેને શોધી અને તેણે અમને ખોટા પાછા આવી શકો છો.
કેવી રીતે હું કે તમે શું કરશો? કોઈપણ સૂચનો અથવા મારા માટે કોડ અપ ખેંચવાનો છે?
[વિદ્યાર્થી] જ્યારે લૂપ કરો. >> યાહ.
તમે કરવા માટે લૂપ કરવા માંગો છો જવું છે.
>> શું તમે કોડ છે હું ખેંચી શકે છે, અથવા તો તમે શું સૂચવે છે લાગતી હતી?
[વિદ્યાર્થી] મને એવું લાગે છે. >> અધિકાર બધા. આ વસ્તુઓ સરળ બનાવે છે. તમારું નામ શું હતું?
[વિદ્યાર્થી] લુકાસ.
1 પુનરાવર્તન. ઠીક છે.
ઓછી છે, આપણે શું પહેલાં શરૂ કહેવાય છે.
અપ નથી તદ્દન શું અમે પહેલાં ઓવરને કહેવાય છે.
ખરેખર, ઓવરને એરે અંદર હવે. તે તત્વ અમે ધ્યાનમાં લેવી જોઈએ.
તેથી નીચા 0 છે, જે એરે નું માપ છે - 1,
અને હવે અમે રહ્યાં છે, અને અમે ચકાસણી કરવામાં આવે છે -
હું માનું કે તમે તેને લઈ જવામાં કરી શકો છો.
તમારી વિચારસરણી શું હતું આ મારફતે? અમને તમારી કોડ લઈ જવામાં.
[વિદ્યાર્થી] શ્યોર. મધ્યમાં haystack કિંમત જુઓ અને તે સોય સાથે સરખામણી.
ઓહ, ખરેખર, કે પાછળની પ્રયત્ન કરીશું - તેથી જો તે તમારા સોય કરતાં વધારે છે, તો પછી તમે કરવા માંગો છો.
તમે દૂર જમણી અડધા કાઢી નાખવા માંગો છો જઈ રહ્યાં છો, અને તેથી હા, તે રીતે પ્રયત્ન કરીશું.
[બોડેન] તેથી ઓછી હોવી જોઈએ? છે કે તમે શું કહ્યું? >> [વિદ્યાર્થી] યાહ.
[બોડેન] ઠીક. ઓછું.
તેથી જો આપણે જોઈ રહ્યાં છો કે અમે શું શું કરવા માંગો છો કરતાં નાની હોય છે,
પછી હા, અમે દૂર ડાબી અડધા કાઢી નાખવા માંગો છો,
જેનો અર્થ છે કે અમે બધું અમે વિચારણા કરી રહ્યા છીએ અપડેટ થાય છે
એરે જમણી નીચા ખસેડીને.
આ સારી દેખાય છે.
મને લાગે છે કે તે જ મુદ્દો છે કે અમે અગાઉના એક જણાવ્યું હતું ધરાવે છે,
જ્યાં જો નીચા 0 છે અને એ 1, પછી નીચા + / અપ માટે 2 સુયોજિત કરવા માટે આ જ બાબત ફરીથી પ્રયત્ન રહ્યું છે.
>> અને જો કે આ કેસ નથી, તે હજુ પણ ખૂબ જ ઓછામાં ઓછા વધુ કાર્યક્ષમ છે
માત્ર દૂર તત્વ ફેંકવું અમે ફક્ત જોવામાં કે આપણે જાણીએ છીએ ખોટું છે.
તેથી નીચા + + / 2 અપ + 1 - >> [વિદ્યાર્થી] તે અન્ય રીતે પ્રયત્ન કરીશું.
[બોડેન] અથવા આ પ્રયત્ન કરીશું - 1 અને અન્ય એક + 1 પ્રયત્ન કરીશું.
[વિદ્યાર્થી] અને ત્યાં ડબલ પ્રયત્ન કરીશું સાઇન સમકક્ષ હોય છે. >> [બોડેન] યાહ.
[વિદ્યાર્થી] યાહ.
ઠીક છે.
અને આખરે, હવે અમે આ + 1 હોય - 1 વસ્તુ,
તે છે - તે ન પણ હોઈ શકે - તે છે ક્યારેય શક્ય નીચા માટે એક અપ કરતા વધારે કિંમત અંત માટે?
મને લાગે છે કે આ જ માત્ર રસ્તો છે કે જે થાય છે - તે શક્ય છે? >> [વિદ્યાર્થી] મને ખબર નથી.
પરંતુ જો તે કાપવામાં નહીં અને પછી ઓછા નહીં કે 1 અને પછી - >> યાહ.
[વિદ્યાર્થી] તે કદાચ મિશ્રિત થયેલા કરશે કરો.
મને લાગે છે કે તે સારી માત્ર કારણ કે પ્રયત્ન કરીશું
તે અંત માટે નીચા તેઓ સમાન હોવો જોઈએ, મને લાગે છે.
પરંતુ જો તેઓ સમાન છે, પછી અમે જ્યારે સાથે શરૂ લૂપ ન થાય
અને અમે માત્ર કિંમત પરત હોત. મને લાગે છે કે અમે સારા હવે છો.
નોંધ કરો કે ભલે આ સમસ્યા લાંબા સમય સુધી યાદ આવવું
વિચારો જ પ્રકારની અરજી જ્યાં અમે જોઈ શકે છે કે કેવી રીતે આ તેથી સરળતાથી પોતે પૂરું પાડે
હકીકત એ છે કે અમે માત્ર અને કરી રહ્યાં છો તે સૂચકાંકો ફરીથી સુધારીને એક યાદ આવવું ઉકેલ માટે,
અમે સમસ્યા નાની અને નાના કરી રહ્યા છીએ, અમે એરે ઉપગણ પર ધ્યાન કેન્દ્રિત કરી રહ્યા છીએ.
[વિદ્યાર્થી] જો નીચા 0 છે અને એ 1, તેઓ બન્ને 0 + 1/2, કે જે 0 થી જાઓ કરશે,
અને પછી એક + 1 હશે, એક હશે - 1.
[વિદ્યાર્થી] અમે સમાનતા ક્યાં ચકાસવાનું છે?
ગમે જો મધ્યમ એક ખરેખર સોય?
અમે હાલમાં જે કરી રહ્યા છીએ? ઓહ!
It's જો -
હા. માત્ર અમે કરી શકતા નથી નીચે અહીં પરીક્ષણ કરવું કારણ કે આપણે પ્રથમ મધ્યમ કહેવું -
[વિદ્યાર્થી] તે ખરેખર ગમે છે તે બાઉન્ડ ફેંકવું નહીં બનાવ્યા.
તેથી જો તમે દૂર કરી બાઉન્ડ ફેંકવું, તો તમે તેને પહેલી કે ગમે તપાસો.
આહ. યાહ. >> [વિદ્યાર્થી] યાહ.
તેથી હવે અમે દૂર એક અમે હાલમાં અંતે જોવામાં ફેંકવામાં આવ્યા છે,
જેનો અર્થ છે કે અમે હવે પણ જરૂર પડે છે
જો (haystack ([નીચા અપ +) / 2] == સોય), તો પછી અમે સાચું પાછા આવી શકો છો.
અને છે કે શું હું બીજા અથવા જો ફક્ત મૂકી, તે શબ્દશ: અર્થ એકજ સરખો
કારણ કે આ સાચું ફર્યા હોત.
તેથી હું બીજું મૂકવામાં જો, પડશે, પરંતુ તે તો કોઈ વાંધો નથી.
>> તેથી બીજું આ, આ બીજું છે, અને આ એક સામાન્ય બાબત હું નથી જો
જ્યાં પણ જો તે કેસ જ્યાં બધું સારું અહીં છે,
જેવા ઓછી અપ કરતાં વધારે ક્યારેય હોઈ શકે છે, તે કે શું સાચું છે તે વિશે વર્થ તર્ક નથી.
જેથી તમે તેમજ, જ્યારે ઓછું કરતાં ઓછા અથવા તેની બરાબર છે કહેવું શકે છે
અથવા, જ્યારે ઓછું કરતાં ઓછી હોય
તેથી જો તેઓ ક્યારેય સમાન અથવા ઓછા છે અપ કરવા માટે પસાર થાય છે,
તો પછી અમે આ લૂપની તોડી શકે છે.
પ્રશ્નો, ચિંતા, ટિપ્પણીઓ?
ઠીક છે. આ સારી દેખાય છે.
હવે અમે સૉર્ટ કરવા માંગો છો.
જો અમે મારા બીજા પુનરાવર્તન પર જાઓ, અમે આ જ સંખ્યામાં જોવા માટે,
પરંતુ હવે તેઓ ક્રમમાં લાંબા સમય સુધી હોય છે.
અને અમે સૉર્ટ અમલ n લોગ n ના ઓ કોઈપણ અલ્ગોરિધમનો ઉપયોગ કરીને કરવા માંગો છો.
જે અલ્ગોરિધમનો જેથી તમે વિચારો છો અમે અહીં અમલ કરવો જોઇએ? >> [વિદ્યાર્થી] ભેગું કરો આનાથી સૉર્ટ કરો.
[બોડેન] યાહ. મર્જ કરો સૉર્ટ ઓ (n લોગ એન) છે, જેથી અમે શું કરવા જઇ રહ્યા છો.
અને સમસ્યા માટે ખૂબ સમાન હોવું રહ્યું છે,
તેને સરળતાથી જ્યાં પોતાને ફરી યાદ આવવું ઉકેલ માટે પૂરું પાડે છે.
અમે પણ ઉકેલ પુનરાવર્તન સાથે આવી શકે જો આપણે માંગો છો,
પરંતુ રિકર્ઝન અહીં સરળ હોઈ શકે છે અને અમે રિકર્ઝન કરવું જોઈએ કરશે.
હું માનું અમે મર્જ સૉર્ટ મારફતે પ્રથમ જવામાં આવશે,
જોકે ત્યાં મર્જ સૉર્ટ પર કોઈ વિડિઓ પહેલેથી જ છે. [અટ્ટહાસ્ય]
તેથી સૉર્ટ ત્યાં છે મર્જ - હું તેથી આ કાગળ ખૂબ બગાડ છે.
ઓહ, ત્યાં માત્ર એક ડાબી છે.
તેથી મર્જ.
ઓહ, 1, 3, 5.
ઠીક છે.
ભેગું કરો બે અલગ એરે લે છે.
વ્યક્તિગત રીતે તે બે એરે બન્ને અલગ પાડવામાં આવે છે.
તેથી આ એરે, 1, 3, 5, સોર્ટ થાય છે. આ એરે, 0, 2, 4, સોર્ટ થાય છે.
હવે મર્જ કરવું જોઈએ શું તેમને એક એરે કે પોતે છટણી કરવામાં આવે છે માં ભેગા છે.
તેથી અમે 6 કદ ઝાકઝમાળ કે તેને ની અંદર આ તત્વો હોય રહ્યું છે કરવા માંગો છો
ક્રમમાં.
>> અને તેથી અમે એ હકીકત છે કે આ બે એરે અલગ પાડવામાં આવે છે લાભ લઈ શકે છે
લિનીઅર સમય માં આ કરવા માટે,
રેખીય સમય અર્થ જો આ એરે કદ એક્સ છે અને આ માપ વાય છે,
પછી કુલ અલ્ગોરિધમનો ઓ (x વાય +) પ્રયત્ન કરીશું. ઠીક છે.
સૂચનો તેથી.
[વિદ્યાર્થી] અમે ડાબી શરૂ કરી શકાયું નથી?
જેથી તમે 0 નીચે પ્રથમ અને પછી 1 છે મૂકવા અને પડશે પછી અહીં તમે 2 ના અંતે છો.
તેથી તે જેમ તમે એક ટૅબ કે જમણા ખસેડી છે પાસે પ્રકારની છે. >> [બોડેન] યાહ.
આ એરે બંને માટે જો આપણે માત્ર leftmost તત્વ પર ભાર મૂકે છે.
કારણ કે બન્ને એરે છટણી કરવામાં આવે છે, આપણે જાણીએ છીએ કે આ 2 તત્વો
ક્યાં એરે માં નાના તત્વો હોય છે.
જેથી અર્થ એ થાય કે તે 1 2 તત્વો અમારી મર્જ એરે માં નાના તત્વ હોવા જ જોઈએ.
તે જ બને છે કે નાના જમણી આ સમય પર એક છે.
તેથી અમે 0 લે છે, તે ડાબી બાજુ પર દાખલ કારણ કે 0 1 કરતાં ઓછી છે,
તેથી 0 લે છે, તે અમારી પ્રથમ સ્થાન દાખલ કરો, અને પછી અમે આ અપડેટ
હવે પ્રથમ તત્વ પર ભાર મૂકે છે.
અને હવે અમે પુનરાવર્તન કરો.
તેથી હવે અમે 2 સરખાવવા અને 1. 1 નાની હોય છે, તેથી અમે 1 સામેલ કરીશું.
અમે આ નિર્દેશક અપડેટ કરવા માટે આ વ્યક્તિ માટે નિર્દેશ કરે છે.
હવે અમે તેને ફરીથી કરવું જેથી, 2. આ અપડેટ 2 આ 3, સરખાવવા આવશે.
આ સુધારાઓ, પછી 4 અને 5.
જેથી મર્જ છે.
>> તે ખૂબ સ્પષ્ટ છે કે તે રેખીય સમય છે કારણ કે અમે માત્ર દરેક તત્વ સમગ્ર એકવાર જાઓ પ્રયત્ન કરીશું.
અને તે સૌથી મોટી અમલીકરણ મર્જ સૉર્ટ આવું છે પગલું છે.
અને તે હાર્ડ નથી.
એક દંપતિ માટે ચિંતા વસ્તુઓ છે હવે કહો અમે 1, 2, 3, 4, 5, 6 મર્જ કરવામાં આવ્યા હતા.
આ કિસ્સામાં અમે દૃશ્ય જ્યાં આ એક નાના હોવાનું રહ્યું છે માં અંત,
પછી અમે આ નિર્દેશક સુધારવા માટે, આ એક નાના હોવાનું રહ્યું છે, આ સુધારો
આ એક નાની છે, અને હવે તમે ઓળખી છે
જ્યારે તમે વાસ્તવમાં તત્વો કર્યું છે રન આઉટ સાથે સરખામણી કરી.
કારણ કે આપણે પહેલેથી જ આ સમગ્ર એરે ઉપયોગ કર્યો છે,
આ એરે બધું હવે ખાલી છે અહીં દાખલ.
તેથી જો આપણે ક્યારેય બિંદુ જ્યાં અમારા એરે ઓફ સંપૂર્ણપણે પહેલાથી જ ભળી જાય છે પણ,
તો પછી અમે માત્ર અન્ય એરે તમામ તત્વો લો અને તેમને એરે ઓવરને માં દાખલ કરો.
તેથી અમે ફક્ત 4 દાખલ કરી શકો છો, 5, 6. ઠીક છે.
કે જે એક માટે જુઓ વસ્તુ છે.
અમલમાં પગલા 1 પ્રયત્ન કરીશું.
મર્જ કરો પર આધારિત પછી સૉર્ટ, તે પગલાંઓ 2, 2 આ બોલ પર કોઈ પગલાં છે.
ચાલો ખાલી આ એરે આપે છે.
તેથી સૉર્ટ મર્જ, 1 પગલું recursively છિદ્ર માં એરે ભંગ છે.
જેથી છિદ્ર આ એરે વિભાજિત.
હવે અમે 4, 15, 16 50, અને 8, 23, 42, 108 છે.
અને હવે અમે તેને ફરીથી કરવા અને અમે છિદ્ર માં આ વિભાજિત.
હું આ બોલ પર માત્ર કરવું પડશે.
15 4, અને 16 તેથી, 50.
અમે અહીં પર આ જ વસ્તુ કરવાના રહેશે.
અને હવે અમે છિદ્ર માં તેને ફરીથી વિભાજિત.
અને અમે 4, 15, 16, 50 હોય છે.
જેથી અમારી આધાર હોય છે.
એકવાર એરે 1 કદના હોય છે, તો પછી અમે છિદ્ર માં વિભાજન સાથે અટકાવો.
>> હવે અમે શું આ સાથે શું કરવું?
અમે અંત આ પણ 8, 23, 42, અને 108 માં તૂટી જશે.
તેથી હવે જે આપણે આ બિંદુ પર છો, હવે પગલું બે મર્જ પ્રકારના માત્ર લિસ્ટ છે જોડીઓ મર્જ.
તેથી અમે આ મર્જ કરવા માંગો છો. અમે હમણાં જ મર્જ કરો.
અમે જાણીએ છીએ મર્જ ક્રમમાં આ આપશે.
4, 15.
હવે અમે આ મર્જ કરવા માંગો છો, અને તે ક્રમમાં તે સાથે એક યાદી આપશે,
16, 50.
અમે તે મર્જ - 23 8, અને 42, 108 - હું નથી લખી શકો છો.
તેથી અમે મર્જ જોડીઓ વાર હોય છે.
હવે અમે ફક્ત ફરીથી મર્જ.
પોતે નોંધ કરો કે આ યાદીઓ દરેક સૉર્ટ થાય છે,
અને પછી અમે માત્ર આ યાદીઓ મર્જ કરવા 4 કદ યાદી છે કે જે સૉર્ટ થાય છે મેળવી શકો છો
અને આ બે યાદીઓ મર્જ કરવા 4 સાઈઝ યાદી છે કે જે સૉર્ટ થાય છે મેળવો.
અને છેલ્લે, અમે 4 કદ તે બે યાદીઓ મર્જ કરવા 8 કદ એક યાદી છે કે જે સૉર્ટ થાય છે મેળવી શકો છો.
તેથી તે જોવા માટે કે જે આ સમગ્ર n લોગ n છે, અમે પહેલાથી જ જોયું કે મર્જ રેખીય છે,
તેથી અમે આ વિલીનીકરણ સાથે જ્યારે કામ કરીએ છીએ મર્જ એકંદર કિંમત જેમ તેથી,
આ બે યાદી કારણ કે 2 માત્ર છે -
અથવા સારી રીતે, તે n ના ઓ છે, પરંતુ અહીં n એ ફક્ત આ 2 તત્વો છે, તેથી તેને 2 છે.
અને 2 આ 2 પ્રયત્ન કરે છે અને 2 આ 2 આવશે અને 2 આ 2 હશે,
જેથી મર્જ કે અમે જરૂર બધી, અમે અંત n કરી.
2 જેમ + 2 + 2 + 2 8, જે n છે,
તેથી આ સેટમાં મર્જ કિંમત n છે.
અને પછી એ જ અહીં વાત હતી.
અમે 2 આ મર્જ, પછી 2 આ પડશે, અને વ્યક્તિગત રીતે આ મર્જ ચાર કામગીરી લઈ જશે,
આ મર્જ ચાર કામગીરી લઈ આવશે, પરંતુ ફરી એક વખત આ બધા વચ્ચે,
અમે અંત મર્જ n કુલ વસ્તુઓ, અને તેથી આ પગલું n લે છે.
અને તેથી દરેક સ્તર n કરવામાં આવી મર્જ તત્વો લઈ જાય છે.
>> અને કેટલા સ્તર છે?
દરેક સ્તર પર, અમારા એરે 2 કદ દ્વારા વધે છે.
અહીં અમારા એરે 1 કદના હોય છે, અહીં તેઓ 2 કદ છો, અહીં તેઓ 4 સાઈઝ કરશો,
અને છેલ્લે, તેઓ 8 સાઈઝ છો.
તેથી, કારણ કે તે બમણી છે, ત્યાં લોગ ઓફ એન આ સ્તરને કુલ હશે આવે છે.
તેથી લોગ n સ્તરો, દરેક વ્યક્તિગત સ્તર લેતી n કુલ કામગીરી સાથે,
અમે n એ લોગ n અલ્ગોરિધમનો મેળવો.
પ્રશ્નો?
શું લોકો પહેલાથી જ આ કેવી રીતે અમલ કરવો તે પ્રગતિ કરી?
એક સ્ટેટ માં પહેલેથી જ કોઈને જ્યાં હું માત્ર તેમની કોડ ખેંચી શકે છે?
હું એક મિનિટ આપી શકે છે.
આ એક લાંબા સમય સુધી પ્રયત્ન રહ્યું છે.
હું ખૂબ યાદ આવવું ભલામણ -
તમે મર્જ માટે રિકર્ઝન કરતા નથી
કારણ કે મર્જ માટે રિકર્ઝન કરવા માટે, તમારે માટે અલગ અલગ કદમાં એક ટોળું પસાર હોય રહ્યા છીએ.
તમે, પરંતુ તે નકામી છે કરી શકો છો.
પરંતુ પોતે સૉર્ટ માટે રિકર્ઝન ખૂબ સરળ છે.
તમે માત્ર શાબ્દિક ડાબી અડધા ભાગ પર સૉર્ટ કૉલ, જમણી અડધા ભાગ પર સૉર્ટ કરો. ઠીક છે.
કોઈપણ કંઈપણ હું હજુ સુધી ખેંચી શકે છે?
અથવા અન્ય હું એક મિનિટ આપવા પડશે.
ઠીક છે.
કોઈપણ કંઈક સાથે કામ કરી શકે છે?
અથવા તો આપણે ફક્ત આ સાથે કામ કરે છે અને પડશે પછી ત્યાંથી વિસ્તૃત.
>> કોઈને પણ આ કરતાં વધુ કે હું ખેંચી શકે છે?
[વિદ્યાર્થી] યાહ. તમે ખાણ ખેંચી શકે છે. >> અધિકાર બધા.
હા!
[વિદ્યાર્થી] ત્યાં પરિસ્થિતિઓ ઘણો હતા. >> ઓહ શૂટ. તમે કરી શકો છો -
[વિદ્યાર્થી] હું તેને સંગ્રહો છે. >> યાહ.
તેથી અમે મર્જ અલગ કરવું હતી.
ઓહ, પરંતુ તે ખરાબ નથી.
ઠીક છે.
તેથી સૉર્ટ પોતે માત્ર mergeSortHelp કહે છે.
અમને સમજાવો mergeSortHelp શું કરે છે.
[વિદ્યાર્થી] MergeSortHelp ઘટનાએ બે મુખ્ય પગલાંઓ કરે છે,
જે એરે દરેક અડધા સૉર્ટ કરો અને પછી તેમને બંને મર્જ છે.
[બોડેન] ઠીક છે, જેથી મને બીજી આપે છે.
હું આ વિચાર કરો - >> [વિદ્યાર્થી] હું જરૂર પડે -
યાહ. હું કંઈક ખૂટે છું.
મર્જ, હું ખ્યાલ છે કે હું એક નવું એરે બનાવવાની જરૂર છે
કારણ કે હું તે જગ્યાએ ન કરી શકે. હા. >> તમે નથી કરી શકો છો. સુધારે છે.
[વિદ્યાર્થી] તેથી મને એક નવા એરે બનાવો.
હું ફરીથી બદલવા માટે મર્જ ઓવરને અંતે ભૂલી ગયા છો.
ઠીક છે. અમે હવે એક નવો એરે જરૂર છે.
મર્જ સૉર્ટ માં, આ હંમેશા સાચી છે.
વધુ સારું અલ્ગોરિધમનો સમય મુજબના કિંમત ભાગ
છે લગભગ હંમેશા બીટ વધારે મેમરીનો ઉપયોગ જરૂર.
અહીં, કોઈ બાબત તમે કેવી રીતે કરવું સૉર્ટ મર્જ,
તમે ખચીત કેટલાક વધારાના મેમરીનો ઉપયોગ જરૂર છે.
તે અથવા તેણી એક નવી એરે બનાવી.
અને પછી તમે કહે ઓવરને અંતે અમે માત્ર મૂળ એરે નવી એરે નકલ કરવાની જરૂર છે.
[વિદ્યાર્થી] મને એવું લાગે છે, હા.
હું જો કે સંદર્ભ અથવા જે દ્વારા ગણતરી દ્રષ્ટિએ કામ કરે ખબર નથી -
અરે વાહ, તે કામ કરશે. >> [વિદ્યાર્થી] ઠીક.
શું તમે આ ચલાવવાનો પ્રયત્ન? >> [વિદ્યાર્થી] ના, હજી સુધી નથી. ઠીક છે. >>
તે ચાલી રહ્યું પ્રયાસ કરો, અને પછી હું તેના વિશે બીજા માટે વાત કરશે.
[વિદ્યાર્થી] હું બધી કાર્ય પ્રોટોટાઇપ અને બધું જરૂર પડે છે, છતાં યોગ્ય?
કાર્ય પ્રોટોટાઇપ માટે. હા - ઓહ, તમે જેમ થાય છે.
સૉર્ટ કરો mergeSortHelp કૉલ કરે છે.
>> તેથી ઑર્ડર માટે કૉલ સૉર્ટ mergeSortHelp માં, mergeSortHelp ક્યાં હોવી જ વ્યાખ્યાયિત કરવામાં આવે છે
આનાથી સૉર્ટ કરો અથવા પહેલા અમે માત્ર તે પ્રોટોટાઇપ જરૂર છે. માત્ર કૉપિ કરો અને પેસ્ટ કરો કે.
અને એ જ રીતે, mergeSortHelp મર્જ કૉલ કરે છે,
પરંતુ મર્જ હજી સુધી સ્પષ્ટ કરવામાં નથી આવ્યો છે, તેથી અમે માત્ર દો mergeSortHelp ખબર કરી શકો છો
કે કે શું મર્જ કરવા જેવો હવો રહ્યું છે, અને તે કે છે.
MergeSortHelp તેથી.
અમે એક મુદ્દો અહીં છે જ્યાં અમે કોઈ આધાર કેસ હોય છે.
MergeSortHelp ફરી યાદ આવવું છે, જેથી કોઇ પણ ફરી યાદ આવવું કાર્ય
છે આધાર કેસ અમુક પ્રકારની જરૂર ખબર જ્યારે recursively પોતે ફોન અટકાવવા માટે જઈ રહી છે.
અમારા આધાર કેસ શું રહ્યું છે અહીં આવશે? યાહ.
[વિદ્યાર્થી] જો માપ 1 છે? >> [બોડેન] હા.
આની જેમ અમે અધિકાર ત્યાં જોયું, અમે સ્પ્લિટિંગ એરે અટકાવી
એકવાર અમે 1 કદ, હારમાળાઓ જે અનાવશ્યક પોતાને અલગ પાડવામાં આવે છે માં મેળવ્યો.
તેથી જો માપ 1 સમકક્ષ, આપણે જાણીએ છીએ એરે પહેલાથી જ છટણી કરવામાં આવે છે,
તેથી અમે ફક્ત પાછા આવી શકો છો.
>> નોંધ કરો કે રદબાતલ છે, તેથી અમે ખાસ કશું ન હોય, તો આપણે ફક્ત આવો.
ઠીક છે. જેથી અમારી આધાર કેસ છે.
હું માનું અમારા આધાર કેસ પણ જો અમે 0 કદ ઝાકઝમાળ મર્જ કરી વગરનો હોઇ શકે છે,
અમે કદાચ અમુક બિંદુએ રોકવા માંગો છો,
તેથી અમે ફક્ત 2 કરતાં ઓછી અથવા કરતાં ઓછી અથવા 1 સમાન કદ કહી શકો
કે જેથી કોઇ પણ એરે માટે હવે કામ કરશે.
ઠીક છે.
જેથી અમારી આધાર કેસ છે.
હવે તમે અમને મર્જ લઈ જવામાં કરવા માંગો છો?
આ તમામ કિસ્સાઓમાં અર્થ શું છે?
અહીં ઉપર, અમે માત્ર એ જ વિચાર કરી રહ્યા છીએ, કે -
[વિદ્યાર્થી] હું બધી mergeSortHelp કોલ્સ કદ સાથે પસાર કરવાની જરૂર છે.
હું વધારાની પ્રાથમિક તરીકે કદ ઉમેર્યાં છે અને તેને ત્યાં, 2 / કદ જેવા નથી.
[બોડેન] ઓહ, / કદ 2 / કદ 2. >> [વિદ્યાર્થી] અરે વાહ, અને તે ઉપર તેમજ કાર્ય છે.
[બોડેન] અહીં? >> [વિદ્યાર્થી] કદ માત્ર. >> [બોડેન] ઓહ. કદ, કદ? >> [વિદ્યાર્થી] યાહ.
[બોડેન] ઠીક.
દો મને એક બીજા માટે વિચારો.
શું આપણે એક મુદ્દો પણ?
અમે હંમેશા 0 તરીકે રહ્યાં છો ડાબી સારવાર. >> [વિદ્યાર્થી] નંબર
કે ખોટું પણ છે. માફ કરશો. તે પ્રારંભ પ્રયત્ન કરીશું. યાહ.
[બોડેન] ઠીક. હું કે વધારે ગમે છે.
ઓવરને અને. ઠીક છે.
તેથી હવે તમે અમને મર્જ લઈ જવામાં કરવા માંગો છો? >> [વિદ્યાર્થી] ઠીક.
મેં હમણાં જ આ નવી એરે મારફતે વૉકિંગ છું કે હું બનાવી છે.
તેના કદ એરે ના ભાગ માપ કે અમે અલગ કરવામાં આવે છે કરવા માંગો છો
અને તત્વ કે હું નવી એરે પગલું મૂકવું જોઈએ, તો પ્રયાસ કરે છે.
તેથી કે જે કરવા માટે, પ્રથમ હું જો એરે ડાબી અડધા કોઈ તત્વો હોય ચાલુ રહે ચકાસણી છું,
અને જો તે નહિં થાય, તો પછી તમે તે બીજા શરત છે, કે જે હમણાં જ કહે છે નીચે જાઓ
ઠીક, તે યોગ્ય એરે હોવી જોઈએ, અને અમે newArray ના વર્તમાન ઇન્ડેક્સ કે મૂકીશું.
>> અને પછી અન્યથા, હું જો એરે જમણી બાજુએ પણ સમાપ્ત થાય છે ચકાસણી છું,
જે કિસ્સામાં હું ફક્ત ડાબી બાજુએ મૂકો.
કે ખરેખર જરૂરી ન પણ હોઈ શકે. મને ખાતરી છે કે નથી.
પરંતુ ગમે તે રીતે, અન્ય બે ચેક બે કે જેઓ ડાબે અથવા જમણે માં નાના હોય છે.
અને પણ દરેક કેસ માં, હું incrementing છું પ્લેસહોલ્ડર જે હું વધારતી.
[બોડેન] ઠીક.
કે સારા લાગે છે.
શું કોઇને ટિપ્પણીઓ અથવા બાબતો અથવા પ્રશ્નો છે?
અથવા તો પાંચ જેવી લાગે છે - ચાર કેસો છે કે અમે માત્ર કરવામાં વસ્તુઓ લાવવા છે તેથી -
પરંતુ અમે ધ્યાનમાં છે કે શું ડાબી એરે બહાર વસ્તુઓ અમે મર્જ જરૂર સ્કોર હોય છે,
કે શું અધિકાર એરે બહાર વસ્તુઓ અમે મર્જ જરૂર સ્કોર છે -
હું કંઇ નિર્દેશ કરતી છું.
તેથી કે શું ડાબી એરે બહાર વસ્તુઓ સ્કોર છે અથવા જમણી એરે બહાર વસ્તુઓ સ્કોર છે.
તે બે કેસો છે.
અમે પણ છે કે શું ડાબી વસ્તુ અધિકાર બાબત કરતા ઓછી છે મામૂલી કેસ કરવાની જરૂર છે.
તો પછી અમે ડાબી વસ્તુ પસંદ કરો માંગો છો.
તે કિસ્સાઓ છે.
તેથી આ હતી અધિકાર તેથી, કે જે છે.
અરે છોડી દીધી. તે 1, 2, 3 છે. ઠીક છે. તેથી હા, તે ચાર વસ્તુઓ અમે કરવા માંગો છો શકે છે.
અને અમે ઉકેલ પુનરાવર્તન નહીં જાય છે.
હું ભલામણ કરશે -
મર્જ કરો સૉર્ટ કાર્ય છે કે જે બંને પૂંછડી ફરી યાદ આવવું નથી એક ઉદાહરણ છે,
સરળ તેને પૂંછડી ફરી યાદ આવવું બનાવવા નથી,
પણ તે ખૂબ જ સરળ બનાવવા માટે પુનરાવર્તન નથી.
આ ખૂબ જ સરળ છે.
મર્જ પ્રકારની આ અમલીકરણ,
મર્જ, કોઈ બાબત તમે શું કરો છો, તો તમે મર્જ બિલ્ડ રહ્યા છીએ.
>> તેથી મર્જ મર્જ ટોચ પર બાંધવામાં સૉર્ટ recursively ફક્ત આ ત્રણ રેખાઓ.
Iteratively, તેને વધુ હેરાન અને વધુ મુશ્કેલ વિશે વિચારો છે.
નોટિસ પણ છે કે તે mergeSortHelp થી ફરી યાદ આવવું પૂંછડી નથી - જ્યારે તે પોતે કહે છે -
તે હજુ પણ આ યાદ આવવું કોલ વળતર પછી વસ્તુઓ કરવાની જરૂર છે.
તેથી આ સ્ટેક ફ્રેમ આ ફોન પછી પણ ચાલુ રહી છે જ જોઈએ.
અને પછી જ્યારે તમે આ કૉલ, સ્ટેક ફ્રેમ ચાલુ જ જોઈએ
કારણ કે ભલે તે કોલ પછી, અમે હજુ પણ મર્જ કરવાની જરૂર છે.
અને તે nontrivial છે આ પૂંછડી ફરી યાદ આવવું બનાવે છે.
પ્રશ્નો?
અધિકાર છે.
તેથી પાછા જવાનું સૉર્ટ કરવા માટે - ઓહ, ત્યાં બે વસ્તુઓ હું બતાવવા માંગો છો છે. ઠીક છે.
આનાથી સૉર્ટ કરો પર પાછા જતાં, અમે આ ઝડપથી કરવું પડશે.
અથવા શોધ. સૉર્ટ કરો? સૉર્ટ કરો. યાહ.
આનાથી સૉર્ટ કરો શરૂઆત પર પાછા જવાનું.
અમે તે પ્રકારના એરે અલ્ગોરિધમનો કોઈપણ અલ્ગોરિધમનો ઉપયોગ કરીને બનાવવા માંગો છો
n ના ઓ છે.
તેથી આ કેવી રીતે શક્ય છે? શું કોઇને કોઇ પ્રકારની હોય -
હું પૂર્વે એવો સંકેત આપ્યો -
જો અમે છો n લોગ n માંથી n ના ઓ સુધારો,
અમે અમારા અલગોરિધમ સમય મુજબના સુધારો થયો છે,
જેનો અર્થ છે કે અમે શું માટે તે માટે અપ કરો જરૂર જવું છે?
સ્પેસ [વિદ્યાર્થી]. >> યાહ. અમે વધુ જગ્યા ઉપયોગ કરી રહ્યા છીએ.
અને નથી પણ વધુ જગ્યા જ તેને ઝડપી વધુ જગ્યા છે.
મને લાગે છે અલ્ગોરિધમનો આ પ્રકારના સ્યુડો કંઈક, સ્યુડો polynom છે -
સ્યુડો - હું યાદ રાખી શકો નહિં. સ્યુડો કંઈક.
પરંતુ કારણ કે અમે ખૂબ જ જગ્યા વાપરવાની જરૂર
કે આ પ્રાપ્ત કરી શકાય છે, પરંતુ ન વાસ્તવિક છે.
>> અને અમે કેવી રીતે આ સિદ્ધ કરી શકું?
અમે આ હાંસલ જો અમે બાંહેધરી આપતા નથી કે એરે માં કોઇ ખાસ તત્વ
નીચે અમુક ચોક્કસ માપ છે.
તેથી આપણે માત્ર કહે છે કે કદ 200 છે,
ઝાકઝમાળ કોઈપણ તત્વ નીચે 200 માપ છે.
અને આ ખરેખર ખૂબ વાસ્તવિક.
તમે ખૂબ જ સરળતાથી ઝાકઝમાળ કે તમે તેને બધું જાણતા હોય શકે છે
છે કેટલાક સંખ્યા કરતા ઓછી હશે.
ગમે જો તમને કેટલાક સંપૂર્ણપણે વ્યાપક વેક્ટર અથવા કંઈક
પરંતુ તમને ખબર બધું કરવા માટે 0 અને 5 વચ્ચે હોવું રહ્યું છે,
પછી તે નોંધપાત્ર રીતે ઝડપી આવું જ હશે.
અને તત્વો કોઈપણ બાઉન્ડ 5 છે,
આ બાઉન્ડ તેથી છે, કે જે કેટલી મેમરી તમે ઉપયોગ કરી રહ્યા છીએ.
તેથી બાઉન્ડ 200 છે.
સિદ્ધાંત ત્યાં હંમેશા એક બાઉન્ડ થી પૂર્ણાંક માત્ર 4 બિલિયન સુધી હોઇ શકે છે,
પરંતુ તે પછી આપણે જગ્યા ઉપયોગ છો ત્યારથી અવાસ્તવિક છે
4 બિલિયન ક્રમ છે. જેથી અવાસ્તવિક છે.
પરંતુ અહીં આપણે બાઉન્ડ કહેવું પડશે 200 છે.
તે n ના ઓ માં કરી આ યુક્તિ છે અમે અન્ય કદ ગુનામાં BOUND કહેવાય એરે બનાવે છે.
તેથી વાસ્તવમાં, આ માટે એક શોર્ટકટ છે - હું ખરેખર જો રણકાર કરે ખબર નથી.
પરંતુ ઓછામાં ઓછા GCC માં - I'm એમ ધારી રહ્યા છીએ રણકાર તે ખૂબ કરે છે -
આ માત્ર સમગ્ર એરે પ્રારંભ કરવા માટે 0s હશે.
તેથી જો હું નથી માંગતા, તો પછી હું અલગ માટે કરી શકે (પૂર્ણાંક હું = 0;
i <BOUND; i + +) ગણતરીઓ અને [i] = 0;
તેથી હવે બધું 0 થી આરંભ છે.
હું મારા એરે પર ફરી વળવું,
અને હું જે કરી રહ્યો છું શું છે હું દરેક ગણતરી છું - દો છે ડાઉન અહીં જાઓ.
અમે 4, 15, 16, 50, 8, 23, 42, 108 છે.
હું ગણતરી છું શું તે તત્વો દરેક ઘટનાઓની સંખ્યા છે.
ચાલો ખરેખર અહીં એક દંપતી વધુ કેટલાક પુનરાવર્તન સાથે ઉમેરો.
મૂલ્ય જેથી અમે અહીં છે, કે જે કિંમત સાથે અરે હોવો [i] રહ્યું છે.
તેથી Val 4 અથવા 8 અથવા ગમે હોઈ શકે છે.
અને હવે હું ગણતરી છું કે કિંમત કેટલી હું જોઇ છે,
ગણતરીઓ જેથી [Val] + +;
પછી આ થાય છે, ગણતરીઓ માટે 0001 કંઈક આના જેવી રહ્યું છે.
ચાલો ગણતરીઓ કરી [Val] - + 1 બાઉન્ડ.
>> હવે ફક્ત એ હકીકત છે કે અમે 0 થી શરૂ કરી રહ્યાં છો હિસ્સો ધરાવે છે.
જેથી 200 જો અમારી સૌથી મોટી સંખ્યા હોવી રહ્યું છે,
પછી 0 થી 200 201 વસ્તુઓ છે.
ગણતરીઓ તેથી 00001 જેમ દેખાય છે કારણ કે અમે એક 4 પડશે.
તો પછી અમે 0001 જ્યાં અમે કાઉન્ટની 8 ઇન્ડેક્સ 1 એક પડશે પડશે.
અમે કાઉન્ટની 23 અનુક્રમણિકા માં 2 પડશે.
અમે કાઉન્ટની 42 અનુક્રમણિકા માં 2 પડશે.
તેથી અમે ગણતરી વાપરી શકો છો.
તેથી num_of_item = ગણતરીઓ [i].
અને તેથી જો num_of_item 2 છે, તેનો અર્થ એ કે અમે નંબર i ની 2 દાખલ કરવા માંગો છો
અમારા છટણી એરે માં.
તેથી અમે અત્યાર સુધી અમે કેવી રીતે એરે માં છે ટ્રૅક રાખવા જરૂર છે.
તેથી ઇન્ડેક્સ = 0.
અરે - મેં માત્ર તે લખી શકશો.
ગણકો -
એરે [અનુક્રમણિકા + +] i =;
છે કે હું શું કરવા માંગો છો? મને લાગે છે કે હું શું કરવા માંગો છો.
હા, આ સારું લાગે છે. ઠીક છે.
તેથી બધા સમજી નથી મારા ગણતરીઓ એરે હેતુ શું છે?
આ નંબરો દરેક ઘટનાઓની સંખ્યા ગણાય છે.
પછી હું ઉપર કે ગણતરીઓ એરે વારો છું,
અને ગણતરીઓ એરે માં ઇથ સ્થિતિ
હું નંબર કે મારી છટણી એરે માં દેખાવા જોઈએ છે.
કે શા માટે 4 ગુનામાં માટે 1 પ્રયત્ન રહ્યું છે
અને 8 ગુનામાં માટે 1 પ્રયત્ન રહ્યું છે, 23 ગુનામાં માટે 2 પ્રયત્ન રહ્યું છે.
જેથી તેમને ઘણી હું કેવી રીતે મારા છટણી એરે દાખલ કરવા માંગો છો.
પછી મેં હમણાં જ આ કરી.
હું num_of_item દાખલ છું મારા છટણી એરે માં છે.
>> પ્રશ્નો?
અને તેથી ફરીથી, આ રેખીય સમય છે કારણ કે અમે ફક્ત આ બોલ આવે છે એકવાર વારો,
પરંતુ તે પણ આ નંબર શું બને છે માં રેખીય છે,
અને તેથી તે ભારે તમારી બાઉન્ડ શું છે તેના પર આધાર રાખે.
200 એક બાઉન્ડ સાથે, કે જે ખરાબ નથી.
જો તમારી બાઉન્ડ થી 10,000 પ્રયત્ન રહ્યું છે, પછી તે થોડો ખરાબ છે,
પરંતુ જો તમારા બાઉન્ડ માટે 4 અબજ હોઇ શકે છે, જવું છે કે સંપૂર્ણપણે અવાસ્તવિક છે
અને આ એરે માટે 4 અબજ માપ છે, જે અવાસ્તવિક છે હોવા રહ્યું છે.
જેથી તે છે. પ્રશ્નો?
[અશ્રાવ્ય વિદ્યાર્થી પ્રતિભાવ] ઠીક. >>
હું એક અન્ય વસ્તુ ભાન જ્યારે અમે પસાર થઇ હતી.
મને લાગે છે કે આ સમસ્યા લુકાસ અને કદાચ દરેક એક એક અમે જોયેલા હતી.
હું સંપૂર્ણપણે ભૂલી ગયા છો.
આ જ વસ્તુ હું પર ટિપ્પણી માગતા હતા એ છે કે જ્યારે તમે સૂચકાંકો જેવી વસ્તુઓ સાથે કામ કરીએ છીએ,
તમે આ ખરેખર ક્યારેય જોઈ છે જ્યારે તમે લૂપ માટે લખી રહ્યાં છીએ,
પરંતુ ટેકનિકલ રીતે, તમારે આ સૂચકાંકોમાં સાથે જ્યારે પણ કામ કરીએ છીએ,
તમે ખૂબ ખૂબ હંમેશા સહી થયેલ નહિં પૂર્ણાંકો સાથે કામ કરીશું.
આ માટેનું કારણ એ છે કે જ્યારે તમે સાઇન ઇન પૂર્ણાંકો સાથે કામ કરીએ છીએ,
તેથી જો તમે 2 સાઇન ઇન પૂર્ણાંકો હોય અને તમે તેમને ઉમેરી મળીને
અને તેઓ ખૂબ મોટી અંત, પછી તમે નકારાત્મક નંબર સાથે અંત.
તેથી કે પૂર્ણાંક ઓવરફ્લો શું છે.
>> જો હું 2 અબજ અને 1 અબજ ઉમેરવા માટે, હું 1 નકારાત્મક અબજ સાથે અંત.
કે કેવી રીતે પૂર્ણાંકો કમ્પ્યુટર્સ પર કામ કરે છે.
મદદથી સાથે સમસ્યા જેથી -
કે દંડ છે જો સિવાય નીચા માટે 2 અબજ બને છે અને માટે 1 અબજ બને છે,
તો પછી આ માટે 1 અબજ નકારાત્મક પ્રયત્ન રહ્યું છે અને તે પછી અમે વિભાજિત જઈ રહ્યાં છો કે 2 દ્વારા
અને 500 મિલિયન નકારાત્મક સાથે અંત.
તેથી આ માત્ર એક મુદ્દો જો તમે એરે મારફતે શોધી શકાય થાય છે
વસ્તુઓ અબજો છે.
પરંતુ જો નીચા + + અપ ઓવરફ્લો થાય, તો પછી તે એક સમસ્યા છે.
જલદી અમે તેમને સહી થયેલ નહિં બનાવો, પછી 2 અબજ વત્તા 1 અબજ 3 અબજ ડોલરનો છે.
3 અબજ 2 દ્વારા વિભાજી 1.5 અબજ ડોલરનો છે.
તેથી તેઓ જેટલી જલદી સહી થયેલ નહિં હોવ તો, બધું જ પરિપૂર્ણ છે.
અને જેથી પણ એક મુદ્દો છે જ્યારે તમે આંટીઓ માટે તમારા લખી રહ્યાં,
અને ખરેખર, તે કદાચ તે આપોઆપ કરે છે.
તે વાસ્તવમાં માત્ર તમે કિકિયારી આવશે.
તેથી જો આ સંખ્યા ખૂબ જ પૂર્ણાંક હોઈ મોટી છે પરંતુ તે એક બિનનોંધાયેલ પૂર્ણાંક ફિટ થશે,
તે તમને કિકિયારી આવશે જેથી, કે શા માટે તમે આ મુદ્દો ખરેખર ક્યારેય ચલાવો.
તમે જોઈ શકો છો કે જે ઇન્ડેક્સ નકારાત્મક ન આવે છે,
અને તેથી જ્યારે તમે એરે પર વારો કરી રહ્યાં છો,
તમે હંમેશા પૂર્ણાંક સહી થયેલ નહિં હું શકો છો, પરંતુ તમે ખરેખર નથી.
વસ્તુઓને ખૂબ ખૂબ જ સારી રીતે કામ થશે.
ઠીક છે. [Whispers] સમય શું છે?
છેલ્લા મેં બતાવવા માટે માગે છે - અને હું માત્ર તે ખરેખર ઝડપી કરવું પડશે.
તમને ખબર કેવી રીતે અમે # જેથી અમે # 5 અથવા કંઇક વધુ MAX વ્યાખ્યાયિત કરી શકો છો વ્યાખ્યાયિત છે?
ચાલો MAX નથી. # 200 તરીકે BOUND વ્યાખ્યાયિત કરે છે. કે અમે શું પહેલાં હતી.
કે જે સતત, કે જે હમણાં જ નકલ છે અને તે પેસ્ટ રહ્યું છે વ્યાખ્યાયિત
ત્યાં અમે BOUND લખી થાય છે.
>> તેથી અમે ખરેખર # વ્યાખ્યાયિત સાથે વધુ કરી શકો છો.
અમે # વિધેયો વ્યાખ્યાયિત કરી શકો છો.
તેઓ ખરેખર વિધેયો નથી, પરંતુ અમે તેમને વિધેયો કહી શકશો.
ઉદાહરણ તરીકે, મહત્તમ (x, y) કંઈક હશે તરીકે (? એકસ એક્સ <y સુધી) આવે છે. ઠીક છે.
તેથી તમે ત્રિપુટીઓમાં ઓપરેટર સિન્ટેક્ષ માટે ઉપયોગ કરો જોઈએ,
પરંતુ એક્સ છે વાય કરતાં ઓછું મળે છે? વાય વળતર, બીજું એક્સ આવો.
આમ તમે જોઈ શકો છો કે આ એક અલગ કાર્ય કરી શકે છે,
અને કાર્ય જેમ bool MAX 2 દલીલો લે હોઇ શકે છે, આ આવો.
આ એક સૌથી સામાન્ય રાશિઓ હું આ જેવી થાય છે. અમે તેમને મેક્રો કૉલ કરો.
આ એક મેક્રો છે.
આ માત્ર તે માટે વાક્યરચના છે.
તમને ગમતું હોય તે તમે કરવા માંગો છો મેક્રો લખી શકો છો.
તમે વારંવાર printfs અને સામગ્રી ડિબગીંગ માટે મેક્રો જુઓ.
Printf એક પ્રકાર તેથી, ત્યાં સી ખાસ સ્થિરાંકો જેવા LINE નીચા નીચા હોય છે,
2 underscores LINE નીચા,
અને ત્યાં પણ મને લાગે છે કે 2 FUNC underscores. કે તે હોઈ શકે છે. કે જેવું કંઈક.
તે વસ્તુઓ કાર્ય નામ સાથે બદલવામાં આવશે
અથવા લીટી કે તમે છો સંખ્યા.
વારંવાર, તમે ડિબગીંગ printfs કે નીચે અહીં હું પછી માત્ર લખી શકે લખી
ડીબગ કરો અને તે લીટી નંબર અને કાર્ય કે હું હોવા થાય છાપશે
કે એ ડિબગ નિવેદન આવી છે.
અને તમે પણ અન્ય વસ્તુઓ છાપી શકો છો.
તેથી એક વસ્તુ તમે જોઈ જોઈએ છે જો હું # DOUBLE_MAX વ્યાખ્યાયિત થાય છે
* 2 વાય અને 2 કંઈક તરીકે * એક્સ.
તેથી ગમે તે કારણોસર, તમે ખૂબ કે શું થાય છે.
તો તેને એક મેક્રો બનાવે છે.
આ વાસ્તવમાં તૂટી જાય છે.
હું તેને DOUBLE_MAX (3, 6) કંઈક કરવાથી કહીએ છીએ.
તેથી શું પરત કરવો જોઇએ?
12 [વિદ્યાર્થી].
હા, 12, પરત કરવો જોઇએ અને 12 ફર્યા છે.
3 x માટે બદલાઈ નહીં, 6 વાય માટે બદલાઈ નહીં, અને અમે * 2 6, જે 12 છે આવો.
હવે આ શું શું? શું પરત કરવો જોઇએ?
[14 વિદ્યાર્થી]. >> આદર્શરીતે, 14.
આ મુદ્દો એ છે કે હેશ કેવી રીતે કામ વ્યાખ્યાયિત યાદ રાખો કે, તે એક શાબ્દિક કૉપિ અને પેસ્ટ છે
ખૂબ ખૂબ બધું છે, જેથી આ શું તરીકે અર્થઘટન કરી રહ્યું છે
3 1 વત્તા 6, 2 1 જોવાયા વત્તા 6, 2 3 વખત કરતાં ઓછી છે.
>> તેથી આ કારણ માટે તમે હંમેશા કૌંસ બધું લપેટી.
કોઇ વેરિયેબલ તમે હંમેશા કૌંસ માં લપેટી.
ત્યાં કિસ્સાઓ છે કે જ્યાં તમે ન હોય છે, જેમ મને ખબર છે કે હું અહીં શું કરવાની જરૂર નથી
કારણ કે ઓછી હોય છે ઘટનાએ હંમેશા માત્ર કામ ચાલી રહ્યું છે,
જો કે તે પણ સાચું નથી હોઈ શકે છે.
જો ત્યાં DOUBLE_MAX (== 1 2) જેવી હાસ્યાસ્પદ કંઈક છે,
પછી તે માટે 1 3 કરતાં ઓછી સાથે બદલી કરો રહ્યું છે 2 સમકક્ષ સમકક્ષ,
અને તેથી તે પછી તે 3 1 કરતાં ઓછી કરવા ચાલી રહ્યું છે, એ નથી કે સમાન 2,
જે નથી, આપણે શું કરવા માંગો છો.
જેથી કોઇ ઓપરેટર અગ્રતા સમસ્યા અટકાવવા માટે,
હંમેશા કૌંસ માં લપેટી.
ઠીક છે. અને તે છે, 5:30.
જો તમે pset પર કોઇ પ્રશ્નો હોય તો, અમને ખબર.
તે મજા હોવી જોઈએ, અને તે હેકર આવૃત્તિ પણ વધુ વાસ્તવિક છે
છેલ્લા વર્ષ ના હેકર આવૃત્તિ કરતાં, તેથી અમે આશા રાખીએ કે તમે ઘણાં તેને કરવાનો પ્રયાસ કરો.
ગયા વર્ષે તે ખૂબ જ પ્રબળ હતો.
>> [CS50.TV]