Array a[0..n-1] mein key x dhundho, left se right scan karo, pehli match par ruk jao.
for i in 0..n-1:
if a[i] == x: return i # success
return -1 # not found
Best case.Yeh step kyun? Sabse sasta arrangement loop ko turant band kar deta hai — a[0] == x. Ek comparison.
B(n)=1∈Θ(1)
Worst case.Yeh step kyun? Sabse expensive case mein sab kuch scan karna padta hai: xaakhri slot par hai, ya abhi nahin hai. Hum n comparisons karte hain.
W(n)=n∈Θ(n)
Average case (successful search, x equally likely har position par).Yeh step kyun? Agar x index i par hai (prob n1), toh cost hai i+1 comparisons. Expectation lo:
A(n)=∑i=0n−1n1(i+1)=n1∑k=1nk=n1⋅2n(n+1)=2n+1∈Θ(n)Yeh step kyun?∑k=1nk=2n(n+1) (Gauss pairing). Toh average mein hum array ka lagbhag aadha scan karte hain.
for i in 1..n-1:
key = a[i]
j = i-1
while j>=0 and a[j] > key: # comparison + shift
a[j+1] = a[j]; j -= 1
a[j+1] = key
Best case — already sorted.Yeh step kyun? Agar array ascending hai, toh while condition a[j] > keypehli test par hi false hoti hai har baar. n−1 outer iterations mein se har ek mein exactly 1 comparison hota hai.
B(n)=n−1∈Θ(n)
Worst case — reverse sorted.Yeh step kyun? Har naya key apne pehle ke sab elements se chhota hota hai, isliye inner loop bilkul saamne tak jaata hai. Iteration i mein i comparisons hote hain:
W(n)=∑i=1n−1i=2(n−1)n∈Θ(n2)
Average case (random permutation).Yeh step kyun? Element i ke liye, average mein woh sorted prefix mein aadha andar jaata hai, jisme ≈i/2 comparisons lagte hain:
A(n)≈∑i=1n−12i=21⋅2(n−1)n=4n(n−1)∈Θ(n2)
Input size n; sirf input ka arrangement/content vary hota hai.
Linear search: best, worst, average comparisons?
Krama se 1, n, 2n+1.
Insertion sort best vs worst case order?
Best Θ(n) (already sorted), worst Θ(n2) (reverse sorted).
"Average = (best+worst)/2" kyun galat hai?
Average probability-weighted hota hai; midpoint ignore karta hai ki extreme inputs kitne rare/common hain (e.g. quicksort avg Θ(nlogn) hai, Θ(n2) ka midpoint nahin).
Kya Big-O aur worst case same hain?
Nahin. O/Ω/Θ bound types hain; best/worst/average batate hain kaun sa input consider kar rahe ho — yeh independent hain.
In derivations mein use hua sum formula?
∑k=1nk=2n(n+1).
Recall Ek 12-saal ke bachche ko samjhao
Tum apni dost ko kids ki line mein dhundh rahe ho. Agar woh bilkul aage hai, toh turant mil jaati hai — yeh best case hai. Agar woh bilkul peeche hai (ya line mein hai hi nahin!), toh sabko check karna padta hai — yeh worst case hai. Agar tum yeh bahut baar karo aur average karo ki kitne bacche check kiye, toh usually aadhi line hoti hai — yeh average case hai. Line ki length same hai, par kismat decide karti hai kitna time lagta hai!