বর্তমানে এই প্রশ্নের জবাব দেওয়ার প্রতিটি উত্তর আপনাকে বলবে যে এর O(1)
অর্থ ধ্রুবক সময় (যা পরিমাপের ক্ষেত্রে তা ঘটে; রানটাইম, অপারেশন সংখ্যা ইত্যাদি)। এটি সঠিক নয়।
রানটাইম বলতে গেলে O(1)
বোঝা যাচ্ছে যে একটি ধ্রুবক c
ধরণের আছে যা রানটাইম উপরের c
সাথে ইনপুট থেকে পৃথক করে আবদ্ধ হয় । উদাহরণস্বরূপ, n
পূর্ণসংখ্যার অ্যারের প্রথম উপাদানটি ফেরত দেওয়া হ'ল O(1)
:
int firstElement(int *a, int n) {
return a[0];
}
তবে এই ফাংশনটিও O(1)
:
int identity(int i) {
if(i == 0) {
sleep(60 * 60 * 24 * 365);
}
return i;
}
এখানে রানটাইমটি 1 বছরের উপরে সীমাবদ্ধ তবে রানটাইম বেশিরভাগ সময় ন্যানোসেকেন্ডের ক্রম অনুসারে থাকে।
রানটাইম বলতে গেলে O(n)
বোঝা যাচ্ছে যে একটি ধ্রুবক c
রয়েছে যা রানটাইম উপরের সাথে আবদ্ধ হয় c * n
, যেখানে n
ইনপুটটির আকার পরিমাপ করে। উদাহরণস্বরূপ, n
নিম্নলিখিত অ্যালগরিদমের দ্বারা একটি নির্দিষ্ট সংখ্যার পূর্ণসংখ্যার অংকক্রম বিন্যাসে সংখ্যার সন্ধান করা হ'ল O(n)
:
int count(int *a, int n, int item) {
int c = 0;
for(int i = 0; i < n; i++) {
if(a[i] == item) c++;
}
return c;
}
এটি কারণ আমাদের অ্যারে মাধ্যমে পুনরুক্তি করতে হবে প্রতিটি উপাদান একবারে একবারে পরীক্ষা করে।