"O (1) অ্যাক্সেসের সময়" বলতে কী বোঝায়?


126

আমি এই শব্দটি দেখতে পেয়েছি "ও (1) অ্যাক্সেস সময়" এর অর্থ "দ্রুত" বোঝানো হয়েছিল তবে আমি এর অর্থ কী বুঝতে পারি না। এটির সাথে একই প্রসঙ্গে আমি যে অন্যান্য শব্দটি দেখছি তা হ'ল "ও (এন) অ্যাক্সেসের সময়"। এই শব্দগুলির অর্থ কী কেউ দয়া করে একটি সহজ উপায়ে ব্যাখ্যা করতে পারেন?

আরো দেখুন


এটি সাহায্য করতে পারে: স্ট্যাকওভারফ্লো.com
প্রশ্নগুলি / 471199/…

উত্তর:


161

আপনি জটিলতার অর্ডারটি পড়তে চান।

http://en.wikipedia.org/wiki/Big_O_notation

সংক্ষেপে, ও (1) এর অর্থ এটি একটি ধ্রুবক সময় নেয়, 14 ন্যানোসেকেন্ডের মতো, বা তিন মিনিটের মধ্যে সেটে থাকা ডেটার পরিমাণের বিষয়টি বিবেচনা করে।

ও (এন) এর অর্থ এটি সেটের আকারের সাথে বেশিরভাগ সময় রৈখিক লাগে, সুতরাং আকারের দ্বিগুণ একটি সেট দ্বিগুণ সময় নেবে। আপনি সম্ভবত এর মধ্যে একটিতে মিলিয়ন অবজেক্ট রাখতে চান না।


66
পেডেন্টিক হওয়ার অর্থ এই নয় যে রানটাইম (বা অপারেশন সংখ্যা ইত্যাদি) ধ্রুবক। এর অর্থ এমন একটি ধ্রুবক রয়েছে যে রানটাইম (বা অপারেশনগুলির সংখ্যা) ধ্রুবকের দ্বারা উপরের দিকে আবদ্ধ থাকে। এখনও রানটাইম বড় ভ্যারিয়েন্স হতে পারে: যেমন, int main() { int n; cin >> n; if(n == 0) { sleep(60 * 60 * 24 * 365); } cout << n; }হয় O(1)
জেসন

@ জেসন দুর্দান্ত অন্তর্দৃষ্টি!
ক্রিস রুস্কাই

35

সংক্ষেপে, এর অর্থ হ'ল আপনার সংগ্রহে সামান্য সংখ্যক আইটেম রয়েছে বা খুব বেশি (আপনার হার্ডওয়্যারের সীমাবদ্ধতার মধ্যে) আপনার সংগ্রহের কোনও মূল্য সন্ধান করতে একই পরিমাণ সময় লাগে

ও (এন) এর অর্থ হ'ল কোনও আইটেম সন্ধান করতে যে সময় লাগে তা সংগ্রহের আইটেমের সংখ্যার সাথে সমানুপাতিক।

এর সাধারণ উদাহরণগুলি অ্যারেগুলি হয়, যা তাদের আকার এবং লিংক তালিকাগুলি নির্বিশেষে সরাসরি অ্যাক্সেস করা যেতে পারে, যা প্রদত্ত আইটেমটি অ্যাক্সেস করার জন্য শুরু থেকে অনুসরণ করতে হবে।

অন্যান্য আলোচিত অপারেশনটি সাধারণত sertোকানো হয়। অ্যাক্সেসের জন্য একটি সংগ্রহ ও (1) হতে পারে তবে প্রবেশের জন্য ও (এন)। আসলে একটি অ্যারে ঠিক এই আচরণ করে, কারণ একটি আইটেম মাঝখানে সন্নিবেশ করতে আপনাকে প্রতিটি আইটেমটি নীচের স্লটে অনুলিপি করে ডানদিকে নিয়ে যেতে হবে।


21

বর্তমানে এই প্রশ্নের জবাব দেওয়ার প্রতিটি উত্তর আপনাকে বলবে যে এর 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;
}

এটি কারণ আমাদের অ্যারে মাধ্যমে পুনরুক্তি করতে হবে প্রতিটি উপাদান একবারে একবারে পরীক্ষা করে।


19

ও (1) অর্থ কোনও কিছুর অ্যাক্সেসের সময়টি সংগ্রহের আইটেমের সংখ্যার চেয়ে আলাদা।

ও (এন) এর অর্থ হবে কোনও আইটেম অ্যাক্সেসের সময়টি সংগ্রহের আইটেমগুলির সংখ্যার (এন) সমানুপাতিক।


14

ও (1) এর অর্থ অগত্যা "দ্রুত" নয়। এর অর্থ এটি যে সময় নেয় তা ধ্রুবক এবং ফাংশনে ইনপুটটির আকারের ভিত্তিতে নয় । ধ্রুবক দ্রুত বা ধীর হতে পারে। ও (এন) এর অর্থ হ'ল ফাংশনটি যে সময় নেয় তা ফাংশনে ইনপুট আকারের প্রত্যক্ষ অনুপাতে পরিবর্তিত হবে, যা এন দ্বারা নির্দেশিত। আবার এটি দ্রুত বা ধীর হতে পারে তবে n এর আকার বাড়ার সাথে সাথে এটি ধীর হবে।


9

একে বিগ ও স্বরলিপি বলা হয় এবং বিভিন্ন অ্যালগরিদমের অনুসন্ধানের সময় বর্ণনা করে।

ও (1) এর অর্থ হল সবচেয়ে খারাপ ক্ষেত্রে রান সময়টি ধ্রুবক। বেশিরভাগ পরিস্থিতিতে এর অর্থ হ'ল সংগ্রহটি অনুসন্ধান করার জন্য আপনার নিবিড়ভাবে প্রয়োজন হবে না, আপনি যা সন্ধান করছেন তা এখনই খুঁজে পেতে পারেন।


"অনুসন্ধানের সময় "টিকে" সবচেয়ে খারাপ ক্ষেত্রে চালানোর সময় "দিয়ে প্রতিস্থাপন করুন এবং আমি আপনার সাথে আছি।
জেসন পুনিউন

2
@ সেব: আমি মনে করি এটি তার পক্ষে কেবল একটি ভুল নাম ছিল, বিশেষত কারণ ওপি অ্যাক্সেসের সময় সম্পর্কে জিজ্ঞাসা করেছিল।
জেকি

6

O(1)ডেটাসেট এন নির্বিশেষে একই সময়ে একই সময়ে কার্যকর করুন। ও (1) এর উদাহরণ হ'ল একটি অ্যারেলিস্ট হবে যা সূচকের সাথে এর উপাদানটিতে অ্যাক্সেস করে।

O(n)লিনিয়ার অর্ডার নামেও পরিচিত, কর্মক্ষমতা লাইনারি এবং ইনপুট ডেটার আকারের সরাসরি অনুপাতে বাড়বে। ও (এন) এর উদাহরণ এ্যান্ডলিস্ট সন্নিবেশ এবং এলোমেলো অবস্থানের মোছা হবে। যেহেতু প্রতিটি পরবর্তী সন্নিবেশ / এলোমেলো অবস্থানের মোছার ফলে অ্যারেলিস্টের উপাদানগুলি তার রৈখিক কাঠামো বজায় রাখতে তার অভ্যন্তরীণ অ্যারের বামদিকে ডানদিকে সরিয়ে আনবে, একটি নতুন অ্যারে তৈরি এবং পুরানো থেকে উপাদানগুলির অনুলিপি সম্পর্কে উল্লেখ না করে নতুন অ্যারেতে যা ব্যয়বহুল প্রক্রিয়াজাতকরণ সময় নেয় তাই কার্যকারিতা ক্ষতিগ্রস্থ করে।


4

"বিগ ও স্বরলিপি" অ্যালগরিদমের গতি প্রকাশ করার একটি উপায়। nঅ্যালগরিদম যে পরিমাণ ডেটা নিয়ে কাজ করছে তা হচ্ছে। O(1)এর অর্থ হ'ল, যতই ডেটা থাকুক না কেন, এটি ধ্রুবক সময়ে কার্যকর করা হবে। O(n)এর অর্থ এটি ডেটার পরিমাণের সাথে সমানুপাতিক।


3

মূলত, হে (1) অর্থ তার গণনার সময়, ধ্রুবক যখন হে (ঢ) মানে নির্ভর করবে lineally ইনপুট আকারের উপর - শুধু লুপিং - -, কারণ এটি সংখ্যার উপর নির্ভর করে একটি অ্যারের মাধ্যমে looping অর্থাত হে (ঢ) আছে আইটেমগুলির মধ্যে, সাধারণ সংখ্যার মধ্যে সর্বাধিক গণনা করার সময় ও (1) থাকে।

উইকিপিডিয়া পাশাপাশি সাহায্য করতে পারেন: http://en.wikipedia.org/wiki/Computational_complexity_theory


3

ও (1) এবং ও (এন) পার্থক্য করার সহজতম উপায় অ্যারে এবং তালিকার তুলনা করছে।

অ্যারের জন্য, যদি আপনার সঠিক সূচক মান থাকে তবে আপনি তাত্ক্ষণিকভাবে ডেটা অ্যাক্সেস করতে পারেন। (আপনি যদি সূচকটি জানেন না এবং অ্যারের মাধ্যমে লুপ করতে পারেন তবে এটি আর (1) হবে না)

তালিকার জন্য, আপনাকে সূচিটি জানা আছে কিনা তা আপনার সর্বদা লুপ করা উচিত।


আমি ও (1) এর উদাহরণ খুঁজছিলাম এবং কেবলমাত্র এই উত্তরটির জন্য এর ব্যাখ্যা রয়েছে।
নীলমেগ

3

এখানে একটি সাধারণ উপমা; ও (1) সহ আপনি অনলাইনে সিনেমা ডাউনলোড করছেন তা কল্পনা করুন, একটি সিনেমা ডাউনলোড করতে যদি 5 মিনিট সময় লাগে তবে এখনও 20 টি মুভি ডাউনলোড করতে একই সময় লাগবে। সুতরাং আপনি কতগুলি সিনেমা ডাউনলোড করছেন তা বিবেচ্য নয়, এটি এক বা 20 টি সিনেমা হোক না কেন একই সময় (5 মিনিট) নেবে। এই সাদৃশ্যটির একটি সাধারণ উদাহরণ হ'ল আপনি যখন কোনও চলচ্চিত্রের গ্রন্থাগারে যান, আপনি একটি সিনেমা বা 5 নিচ্ছেন কিনা, আপনি কেবল একবারে এগুলি বেছে নেবেন। সুতরাং একই সময় ব্যয়।

তবে ও (এন) এর সাথে যদি কোনও সিনেমা ডাউনলোড করতে 5 মিনিট সময় লাগে তবে 10 টি সিনেমা ডাউনলোড করতে 50 মিনিট সময় লাগবে। সুতরাং সময় স্থির নয় বা আপনি যে সিনেমাগুলি ডাউনলোড করছেন তার সংখ্যার সাথে আনুপাতিক।


1

এর অর্থ অ্যাক্সেসের সময় স্থির থাকে। আপনি যদি 100 বা 100,000 রেকর্ড থেকে অ্যাক্সেস করেন তবে পুনরুদ্ধারের সময়টি একই হবে be

বিপরীতে, ও (এন) অ্যাক্সেসের সময়টি নির্দেশ করবে যে পুনরুদ্ধারের সময়টি আপনি যে রেকর্ডগুলি ব্যবহার করছেন তার সংখ্যার সাথে সরাসরি সমানুপাতিক।


1

এর অর্থ অ্যাক্সেসে ধ্রুব সময় লাগে অর্থাৎ ডেটাসেটের আকারের উপর নির্ভর করে না। ও (এন) এর অর্থ অ্যাক্সেসটি ডেটাসেটের রৈখিক আকারের উপর নির্ভর করবে।

ও-কে বিগ-ও হিসাবেও পরিচিত।


1

অ্যালগরিদমের ভূমিকা: করম্যান, লিসারসন, রিভেস্ট এবং স্টেইন দ্বারা দ্বিতীয় সংস্করণ 44 পৃষ্ঠাতে বলেছেন যে

যেহেতু যে কোনও ধ্রুবক একটি ডিগ্রি -0 বহুপদী, তাই আমরা থেটা (n ^ 0) বা থেটা (1) হিসাবে যে কোনও ধ্রুবক ক্রিয়াকলাপটি প্রকাশ করতে পারি। এই পরবর্তী স্বরলিপিটি একটি ছোটখাটো আপত্তি, কারণ এটি কীভাবে পরিবর্তনশীল অনন্তের দিকে ঝুঁকছে তা পরিষ্কার নয়। আমরা প্রায়শই স্বরলিপি থেইটা (1) ব্যবহার করব যা কিছু পরিবর্তনশীল হিসাবে সম্মতি সহ ধ্রুবক বা ধ্রুবক ফাংশন হিসাবে বোঝাতে পারি। ... আমরা ও (জি (এন)) দ্বারা চিহ্নিত করেছি ... ফাংশনের সেট এফ (এন) যেমন ইতিবাচক ধ্রুবক সি এবং এন 0 এর উপস্থিত রয়েছে যে 0 <= f (n) <= সি * জি (এন) সমস্ত এন> = এন 0 এর জন্য। ... নোট করুন যে চ (এন) = থেটা (জি (এন)) বোঝায় চ (এন) = ও (জি (এন)), যেহেতু থ্যা নোটেশন ও নোটেশনের চেয়ে শক্তিশালী।

যদি একটি অ্যালগরিদম হে (1) সময়ে চলমান থাকে, তার অর্থ হ'ল asympotically কোনও চলকের উপর নির্ভর করে না, যার অর্থ কমপক্ষে একটি ইতিবাচক ধ্রুবক উপস্থিত রয়েছে যা যখন একটি দ্বারা গুণিত হয় তখন ফাংশনের অ্যাসিপটোটিক জটিলতা (~ রানটাইম) এর চেয়ে বেশি হয় একটি নির্দিষ্ট পরিমাণের উপরে n এর মানগুলির জন্য। প্রযুক্তিগতভাবে এটি ও (এন ^ 0) সময়।


-2

ও (1) অর্থ র্যান্ডম অ্যাক্সেস। যেকোন র্যান্ডম অ্যাক্সেস মেমোরিতে, যে কোনও স্থানে যে কোনও উপাদান অ্যাক্সেস করতে নেওয়া সময় একই থাকে। এখানে সময়টি কোনও পূর্ণসংখ্যার হতে পারে তবে কেবলমাত্র মনে রাখতে হবে (এন -১) তম বা নবম স্থানে উপাদানটি পুনরুদ্ধার করতে সময় নেওয়া একই হবে (অর্থাত্ ধ্রুবক)।

যেখানে ও (এন) n এর আকারের উপর নির্ভরশীল।


এলোমেলো অ্যাক্সেসের সাথে এর কোনও
যোগসূত্র নেই

-3

আমার দৃষ্টিকোণ অনুযায়ী,

ও (1) এর অর্থ এক সময় একটি ক্রিয়াকলাপ সম্পাদনের সময় বা নির্দেশ একবারে এক সময় সেরা ক্ষেত্রে অ্যালগরিদমের জটিলতা বিশ্লেষণ।


6
কঠোর চেস্টা কর. এই নির্দিষ্ট প্রশ্নের কেবল একটি দৃষ্টিকোণ নয়, একটি পরিষ্কার সংজ্ঞা প্রয়োজন।
আলফাব্রাভো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.