মূল কনটেন্টে যান
AlgorithmsSorting

Sorting ও Searching অ্যালগরিদমের Time ও Space Complexity তুলনা

পড়তে প্রায় ১০ মিনিটসংস্করণ ১সর্বশেষ আপডেট: ২১ অক্টোবর, ২০২৬১২টি অনুশীলন প্রশ্ন

সংক্ষেপে মনে রাখুন

দ্রুত রিভিশনের জন্য মূল কথা

মূল কথা
  • প্রধান সর্টিং অ্যালগরিদমগুলোর Time ও Auxiliary Space complexity মুখস্থ রাখা
  • Stable ও In-place সর্টিং অ্যালগরিদম আলাদা করতে পারা
  • কোন পরিস্থিতিতে কোন সর্টিং সবচেয়ে কার্যকর তা নির্ধারণ করা
সূত্র ও নিয়ম
Unstable: Quick, Selection, Heap (Mnemonic: "Q-S-H" / "Quick Selection in Heap is Unstable"). Stable: Merge, Insertion, Bubble, Radix, Counting.

পরীক্ষায় কোনটি স্টেবল আর কোনটি আনস্টেবল তা মনে রাখার মোক্ষম নেমোনিক: "Quick Selection in Heap is Unstable" (ব…

যেখানে ভুল হয়

অনেকে মনে করে Selection Sort ছোট এবং সহজ হওয়ায় হয়তো স্টেবল। দূরবর্তী সোয়াপিংয়ের কারণে Selection Sort শতভাগ আনস্টেবল। যেমন: [2a, 2b, 1] সর্ট করলে 1 এর সাথে 2a সোয়াপ হয়ে 2b এর পরে চলে যায়!

Sorting অ্যালগরিদমের তুলনামূলক তালিকা

সরকারি চাকরির পরীক্ষায় নিচের চার্ট থেকে প্রতি বছরই ১–২টি প্রশ্ন আসে:

code
Algorithm        Best         Average      Worst        Space     Stable?
-------------------------------------------------------------------------
Bubble Sort      O(n)         O(n²)        O(n²)        O(1)      Yes
Selection Sort   O(n²)        O(n²)        O(n²)        O(1)      No
Insertion Sort   O(n)         O(n²)        O(n²)        O(1)      Yes
Merge Sort       O(n log n)   O(n log n)   O(n log n)   O(n)      Yes
Quick Sort       O(n log n)   O(n log n)   O(n²)        O(log n)  No
Heap Sort        O(n log n)   O(n log n)   O(n log n)   O(1)      No
Counting Sort    O(n + k)     O(n + k)     O(n + k)     O(k)      Yes

গুরুত্বপূর্ণ বৈশিষ্ট্য ও পরীক্ষার প্রশ্ন

  • প্রায় সাজানো (Nearly Sorted) ডেটার জন্য সেরা: Insertion Sort, কারণ এটি O(n) সময়ে কাজ শেষ করে।
  • সবচেয়ে কম সংখ্যক Swap করে: Selection Sort, সর্বোচ্চ O(n) সংখ্যক swap লাগে।
  • Quick Sort-এর Worst Case: অ্যারে আগে থেকেই সাজানো থাকলে এবং প্রথম বা শেষ উপাদানকে pivot ধরলে সময় লাগে O(n²)। Randomized pivot বা median-of-three নিলে এটি এড়ানো যায়।
  • Linked List সর্ট করার জন্য সেরা: Merge Sort, কারণ র‍্যান্ডম অ্যাক্সেস লাগে না এবং অতিরিক্ত অ্যারে ছাড়া O(1) পয়েন্টার পরিবর্তনে মার্জ করা যায়।
  • Comparison-based সর্টিংয়ের নিচের সীমা (Lower Bound): যেকোনো তুলনাভিত্তিক সর্টিং অ্যালগরিদমে worst-case-এ অন্তত Ω(n log n) তুলনা প্রয়োজন।

Searching ও মধ্যবিন্দু নির্ণয় শর্টকাট

  • Linear Search: Unsorted ডেটায় O(n)।
  • Binary Search: কেবল Sorted ডেটায় প্রযোজ্য; সময় O(log n), iterative-এ space O(1)।
  • Binary Search-এ integer overflow এড়াতে মধ্যবিন্দু বের করার নিরাপদ সূত্র: mid = low + (high - low) / 2।

পরের ধাপ

এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন

পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে