একটি recursive algorithm-এ প্রতিবার ফাংশন নিজেকে কল করলে একটি নতুন ফাংশন কল স্ট্যাক ফ্রেমে যুক্ত হয়, যা অতিরিক্ত মেমরি ব্যবহার করে। এই কারণেই recursion-এর space complexity প্রধানত function call-এর সংখ্যা ও গভীরতার (depth) ওপর নির্ভর করে।
বিস্তারিতভাবে:
-
প্রতিটি function call স্ট্যাকে একটি নতুন stack frame তৈরি করে।
-
এই ফ্রেমে থাকে local variables, parameters, এবং return address, যেগুলোর জন্য নির্দিষ্ট পরিমাণ মেমরি বরাদ্দ হয়।
-
মোট ব্যবহৃত মেমরি recursion-এর সর্বাধিক গভীরতা (maximum recursion depth) অনুসারে বৃদ্ধি পায়।
-
ফলে recursive function-এর space complexity সরাসরি function calls-এর সংখ্যা ও স্তর দ্বারা নির্ধারিত হয়।
ভুল বিকল্পগুলো:
-
Input size: এটি মূলত time complexity-কে প্রভাবিত করে, stack space-কে নয়।
-
Output size: শুধুমাত্র তখনই space প্রভাবিত করে যদি ফলাফলগুলো স্পষ্টভাবে সংরক্ষণ করা হয়।
-
Variables inside loops: এগুলো একই stack frame-এ থাকে, তাই recursion-এর মতো অতিরিক্ত stack space ব্যবহার করে না।
অতএব, recursion-এ space complexity-এর প্রধান উৎস হলো function calls।