3.7.2 · D5 · HinglishAlgorithm Paradigms
Question bank — Divide and conquer — template, correctness, recurrence
3.7.2 · D5· Coding › Algorithm Paradigms › Divide and conquer — template, correctness, recurrence
Neeche har "true/false" answer ke saath ek reason hai — sirf haan/nahi bolna yahan bilkul bekar hai.
True or false — justify
Zyada subproblems ( bada) hamesha divide-and-conquer algorithm ko faster banata hai.
False. exponent mein baitha hai, isliye badhane se leaf cost badhti hai. Karatsuba precisely isliye jeetta hai kyunki usne ko 4 se 3 kar diya, subproblems add karke nahi.
Agar input ke dono halves sahi se solve ho jayein, toh poora answer automatically sahi hoga.
False. Sahi parts tabhi sahi whole dete hain jab combine step khud sahi ho — yeh ek alag proof obligation hai (jaise
merge in Mergesort ko apna alag loop-invariant argument chahiye).Recursion tree method aur Master Theorem alag-alag sets of recurrences solve kar sakte hain.
True. Recursion tree zyada general hai; Master Theorem ek shortcut hai jo tabhi apply hota hai jab polynomially upar/neeche ho se, isliye yeh over jaise gaps par fail ho jaata hai.
Divide-and-conquer ka correctness proof asal mein Mathematical Induction ka proof hota hai.
True. Base case induction ka base hai, recursive calls chote sizes par inductive hypothesis invoke karte hain, aur combine-correctness inductive step hai — recursion tree hi induction tree hai.
mein, term recursive calls ki cost count karta hai.
False. sirf non-recursive kaam hai — divide aur combine. Recursive kaam term mein capture hota hai, alag rakha jaata hai taaki hum use unroll kar sakein.
Master Theorem Case 3 ke liye bas itna kaafi hai ki se tez badhta ho.
False. Iske saath regularity condition bhi chahiye kisi ke liye; iske bina ek tez-badhta lekin wildly oscillating Case 3 se bach sakta hai.
Binary search aur mergesort dono Master Theorem Case 2 mein aate hain.
True. Binary Search mein hai aur , aur Mergesort mein hai aur — dono mein leaf cost se match karta hai, jisse extra factor milta hai.
Base-case threshold bada karne se asymptotic -class badal jaata hai.
False. Ek constant threshold sirf constants aur low-order terms badalta hai; Big-O class same rehti hai, haalaanki yeh real-world constants mein help kar sakta hai.
Divide and conquer require karta hai ki subproblems independent (non-overlapping) hon.
True. Agar subproblems overlap karte hain aur baar baar solve hote hain, toh aap Dynamic Programming territory mein hain; pure D&C assume karta hai ki pieces shared sub-work nahi karte.
Spot the error
"Mera split length 1 ki array ko [] aur [poori array] mein tod deta hai, aur recursion khud-ba-khud terminate ho jaayega."
Error: koi progress nahi. Ek branch abhi bhi size 1 par hai, isliye kabhi shrink nahi hoti — infinite recursion. Har recursive call ka size strictly smaller hona chahiye, jo ek explicit base case force karta hai.
" mein hai aur , isliye Case 3 se answer hai."
Error: sirf logarithmically upar hai se, polynomially nahi — isliye Case 3 apply nahi hota. Recursion tree deta hai.
" (Karatsuba) ke liye, kyunki aur hai, cost hai."
Error: aap ko se simply multiply nahi kar sakte. Yahan hai, isliye leaf cost se neeche hai → Case 1 → .
"Maine prove kar diya ki combine correct hai, isliye mera algorithm correct hai."
Error: incomplete proof. Aap abhi bhi progress (har call strictly smaller) aur base correctness (sabse chhote cases sahi) ke liye indebted hain. Koi bhi ek miss karna proof aur code dono tod deta hai.
" mein ek subproblem hai, isliye koi tree nahi hai aur total hai."
Error: ke saath tree ek single chain hai jiska height hai, har node kaam karta hai → total , nahi.
"Strassen half-size matrices ke 8 multiplications karta hai, jo schoolbook jaisa deta hai."
Error: Strassen sirf 7 multiplies karta hai (), isliye hai aur — strictly se kam.
Why questions
Hum divide-cost aur combine-cost ko ek mein kyun bundle karte hain?
Kyunki recurrence ke liye hum sirf total non-recursive work per call ki parwah karte hain; unhe alag karna koi naya information nahi deta bas analysis clutter karta hai.
Leaves ki sankhya kyun hoti hai, sirf kyun nahi?
levels hain, aur har level node count ko se multiply karta hai, jisse leaves milte hain — branching factor exponent dictate karta hai.
Base case optional kyun nahi hai jab bhi subproblems shrink ho rahe hon?
Kyunki "shrinking" tabhi guaranteed hai jab aap prove karo strict progress; ek bura split ek fixed size par ruk sakta hai, aur bina return-without-recursing rule ke stack overflow ho jaata hai.
Karatsuba mein kam karna (fewer subproblems) kam karne se zyada kyun matter karta hai?
exponent mein rehta hai, jo runtime ki polynomial degree control karta hai; khatraana sirf lower-order terms badalta hai jab aap already leaf-dominated ho.
Same aur wale do algorithms ke alag asymptotic runtimes kyun ho sakte hain?
Kyunki answer ke ke relative bhi depend karta hai — ek sasta ya mehanga combine aapko ek alag Master Theorem case mein daal sakta hai.
Recursion ke liye Mathematical Induction natural correctness tool kyun hai, direct loop invariant se zyada?
Recursion same procedure ko chhote inputs par re-invoke karta hai, jo exactly inductive hypothesis "assume it works for size " ka shape hai — tool structure se match karta hai.
Edge cases
kya hoga jab input ka size ya ho?
Yeh definition se hai — yahi base case hai, seedha bina recursion ke answer milta hai, aur yahi poori induction ko anchor karta hai.
hone par recurrence ka kya hota hai?
"Tree" degenerate ho jaata hai ek chain mein jiska height hai; koi leaf explosion nahi hota, isliye cost purely us chain ke neeche ke sum se driven hoti hai (jaise Binary Search → ).
kya hoga jab , aur iska kya matlab hai?
Yeh negative hota hai (ya, jab ho, zero); yeh signal karta hai ki recursion work ko branching se tez shrink karta hai, isliye almost hamesha dominate karta hai aur aap Case 3 mein jaate ho.
Agar split uneven ho, jaise sizes aur (jaise ek bure Quicksort pivot mein)?
Clean Master Theorem ab apply nahi hota; aap recursion-tree method ya Akra–Bazzi use karte ho, aur unbalanced splits worst case mein Quicksort ko ki taraf degrade kar sakte hain.
Runtime kya hoga jab combine step akele cost kare jabki ho?
leaf cost se polynomially upar hai → Case 3 → ; root ka combine kaam poore tree ko dominate karta hai.
Recall Quick self-test
Is page par sabse common trap ::: (non-recursive work) ko recursive cost se confuse karna, ya yeh assume karna ki "zyada/chhote subproblems = faster" — yaad rakho exponent mein rehta hai.