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-এ spaceO(1)। - Binary Search-এ integer overflow এড়াতে মধ্যবিন্দু বের করার নিরাপদ সূত্র:
mid = low + (high - low) / 2।
পরের ধাপ
এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন
পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে