আমরা টাইম কমপ্লেক্সিটি দেখেছি। ঠিক তেমনি মাঝে মাঝে আমাদের স্পেস কমপ্লেক্সিটিও বের করার প্রয়োজন হয়। আমাদের কোড মেমরিতে কিরকম স্পেস কনজিউম করছে তা বের করার প্রয়োজন পরতে পারে। অথবা দুটি কোড এর মধ্যে কোন কোডটি মেমরিতে বেশি জায়গা নিবে তা বের করার জন্য দুটি কোডের স্পেস কমপ্লেক্সিটি বের করতে হবে।
আমরা কয়েকটি উদাহরন এর মধ্যে স্পেস কমপ্লেক্সিটি বুঝে নেওয়ার ট্রাই করি।
উদাহরন-১ঃ
int result = 0; // একটি ভেরিয়েবল নেওয়া হয়েছে।
for(int i=0;i<n;i++) // একটি লুপ চলছে ০ থেকে n পর্যন্ত, তাই এই কোডের টাইম কমপ্লেক্সিটি O(N)
{
result+=i; // প্রতিবার যোগফল আগের ভেরিয়েবলেই রাখা হচ্ছে।
}
// এখানে টাইম কমপ্লেক্সিটি O(N) কিন্তু স্পেস কমপ্লেক্সিটি O(1) কারন এখানে লুপ চলার কারনে নতুন কোন ভেরিয়েবল নেওয়া হচ্ছে না।
উদাহরন-২ঃ
int ar[n]; // একটি এরে নেওয়া হচ্ছে n সাইজের। তাই এর স্পেস কমপ্লেক্সিটি O(N)। কারন এখানে এরে সাইজ ডিপেন্ড করছে ইনপুট n এর মানের উপর। ইনপুট মান যত বেশি হবে এরেটি মেমরিতে তত বেশি জায়গা দখল করবে।
for(int i=0;i<n;i++)
{
cout << a[i] << endl; // আর কোন ভেরিয়েবল নেওয়া হচ্ছে না।
}
// তাই এই কোডের স্পেস কমপ্লেক্সিটি O(N)