Home › Roadmap › Computer Foundations › Part 3

Big-O Notation

📘 অ্যালগরিদমের গতি ও মেমোরি ব্যবহার মাপার পদ্ধতি।

🌐 Measuring algorithm time and memory.

💻 কম্পিউটার বিজ্ঞানের ভিত্তি🎚 Intermediate📍 Part 3 / 6🧩 3 সাব-টপিক
💻
1

ধারণা · Concept

কী এবং কেন
📘 বাংলা ব্যাখ্যা:
অ্যালগরিদমের গতি ও মেমোরি ব্যবহার মাপার পদ্ধতি।
🌐 English:
Measuring algorithm time and memory.

🗂 কোথায় পড়ে

১. ভিত্তি → কম্পিউটার বিজ্ঞানের ভিত্তি → Big-O Notation

🎯 এই শাখার লক্ষ্য

Explain CPU/memory, use the terminal, reason about algorithm cost

🧰 টুলস

Terminal, VS Code

🪜

ধাপে ধাপে শিখুন · Step-by-step

কেন শিখবেন → কীভাবে শিখবেন → উদাহরণ → সাধারণ ভুল
💡 কেন গুরুত্বপূর্ণ?

১০০ সারিতে যে কোড চলে, ১ কোটি সারিতে সেটাই ঘণ্টা নিতে পারে—Big-O আগেই বলে দেয় কোন পদ্ধতি স্কেল করবে।

  1. ধাপ 1
    ইনপুট n বাড়লে ধাপের সংখ্যা কীভাবে বাড়ে সেটিই জটিলতা
  2. ধাপ 2
    O(1) ডিকশনারি লুকআপ, O(log n) বাইনারি সার্চ, O(n) একবার লুপ, O(n log n) ভালো সর্টিং, O(n²) নেস্টেড লুপ
  3. ধাপ 3
    কোডে লুপ গুনুন: একটি লুপের ভেতরে আরেকটি = সাধারণত O(n²)
  4. ধাপ 4
    সময়ের পাশাপাশি মেমোরি (space complexity) হিসাব করুন

🧪 বাস্তব উদাহরণ

দুটি লিস্টের মিল খুঁজতে নেস্টেড লুপ O(n²); একটিকে set বানালে O(n)—১ লাখ উপাদানে সেকেন্ড বনাম মিনিটের পার্থক্য।

⚠️ সাধারণ ভুল

ছোট ডেটায় টেস্ট করে ধরে নেওয়া কোড দ্রুত—বড় ডেটায় আসল পার্থক্য দেখা যায়।

🔑 মূল শব্দ (Key terms)

time complexityspace complexityO(n)O(log n)O(n²)

3

সাব-টপিক ও বিস্তারিত · Sub-topics

টপিক → সাব-টপিক → সাব-সাব টপিক
3.1 O(1), O(log n), O(n)3.1.1 কনস্ট্যান্ট3.1.2 লগারিদমিক ও লিনিয়ার সময়
3.2 O(n²)3.2.1 নেস্টেড লুপ কেন ধীর
3.3 স্পেস জটিলতা3.3.1 মেমোরি ব্যবহারের হিসাব
🎬

ভিডিও · Videos (বাংলা ও English)

ক্লিক করলে সাইটের ভেতরেই ফ্লোটিং প্লেয়ারে চলবে · ভিডিও MySQL-এ সংরক্ষিত

📺 আরও খুঁজুন

💻

হাতে-কলমে · Try it (Computer Foundations)

এডিট করে Run চাপুন · Ctrl+Enter
# Big-O in action: linear vs binary search
import time, bisect
data=list(range(1_000_000)); target=987_654
t=time.time(); i=data.index(target); lin=time.time()-t
t=time.time(); j=bisect.bisect_left(data,target); bi=time.time()-t
print(f"Linear O(n): {lin*1000:.2f} ms | Binary O(log n): {bi*1000:.4f} ms")
print(bin(42), hex(255), 0.1+0.2)
❓

সেল্ফ-চেক · Self check

1. “কনস্ট্যান্ট, লগারিদমিক ও লিনিয়ার সময়” — এটি কোন সাব-টপিকের বর্ণনা?

2. “নেস্টেড লুপ কেন ধীর” — এটি কোন সাব-টপিকের বর্ণনা?

3. “মেমোরি ব্যবহারের হিসাব” — এটি কোন সাব-টপিকের বর্ণনা?

🔗

সংযুক্ত কনসেপ্ট · Connected concepts

← আগের টপিকLogic & Set Theoryপরের টপিক →Number Systems
🎬 Video