23/04/2026
Array দিয়েই তো কাজ হচ্ছে — তাহলে Set কেন শিখব? 🤔
এই প্রশ্নটা আমার মাথায় অনেকদিন ছিল। কিন্তু যখন বুঝলাম যে Data Structure-এর পছন্দ সরাসরি application-এর performance এবং scalability নির্ধারণ করে — তখন বিষয়টা সম্পূর্ণ বদলে গেল।
━━━━━━━━━━━━━━━━━━━
মূল পার্থক্য
━━━━━━━━━━━━━━━━━━━
Array হলো একটা ordered list — কোনো value খুঁজতে গেলে প্রতিটা element একে একে দেখতে হয়। এটা O(n)।
Set হলো একটা unique-value collection — Hash Table ব্যবহার করে বলে যেকোনো value সরাসরি O(1)-তে খোঁজা যায়। মানে, list যত বড়ই হোক, সময় একই।
━━━━━━━━━━━━━━━━━━━
Performance তুলনা
━━━━━━━━━━━━━━━━━━━
🔴 Array:
→ Search: O(n) — পুরো list scan করতে হয়
→ Duplicate check: O(n²) — অনেক বেশি costly
→ Unique guarantee: নিজে manually দেখতে হবে
🟢 Set:
→ Search: O(1) — সরাসরি lookup, instant
→ Duplicate: Automatically handle করে
→ Unique guarantee: Built-in, কোনো extra কাজ নেই
━━━━━━━━━━━━━━━━━━━
📌 Real-World উদাহরণ
━━━━━━━━━━━━━━━━━━━
ধরুন একটা e-commerce platform-এ ১০ লক্ষ registered user আছে। প্রতিটা login request-এ check করতে হবে — user active কিনা।
→ Array দিয়ে: worst case ১০ লক্ষ comparison — প্রতিটা request-এ
→ Set দিয়ে: মাত্র ১টি lookup — ১ লক্ষ request হলেও same speed
এই পার্থক্যটাই production-এ response time milliseconds থেকে seconds-এ নিয়ে যেতে পারে।
━━━━━━━━━━━━━━━━━━━
কখন কোনটা ব্যবহার করবেন?
━━━━━━━━━━━━━━━━━━━
✅ Array — যখন ordering গুরুত্বপূর্ণ, index দিয়ে access দরকার, অথবা duplicate value রাখতে হবে।
✅ Set — যখন uniqueness নিশ্চিত করতে হবে, দ্রুত membership check দরকার, অথবা বড় data থেকে duplicate সরাতে হবে।
━━━━━━━━━━━━━━━━━━━
💡 মূল শিক্ষা
━━━━━━━━━━━━━━━━━━━
Data Structure শুধু syntax নয় — এটা একটা সিদ্ধান্ত। সেই সিদ্ধান্তটা নির্ধারণ করে আপনার app কতটা দ্রুত চলবে, কত বড় load সামলাতে পারবে।
সঠিক tool, সঠিক সমস্যার জন্য — এটাই experienced developer-এর চিন্তা।