আলগাভাবে বলতে গেলে সময়ের জটিলতা সংক্ষিপ্ত করার একটি উপায় যা ইনপুট আকার বাড়ার সাথে সাথে অ্যালগোরিদমের ক্রিয়াকলাপ বা রান-টাইম কীভাবে বৃদ্ধি পায়।
জীবনের বেশিরভাগ জিনিসের মতো একটি ককটেল পার্টি আমাদের বুঝতে সাহায্য করতে পারে।
চালু)
আপনি যখন পার্টিতে পৌঁছেছেন তখন আপনাকে সবার হাত কাঁপতে হবে (প্রতিটি আইটেমটিতে একটি অপারেশন করুন)। উপস্থিতদের সংখ্যা N
বাড়ার সাথে সাথে আপনার হাত নেড়ে নিতে সময় / কাজের সময় লাগবে যেমন বাড়ছে O(N)
।
কেন O(N)
এবং না cN
?
মানুষের সাথে হাত মিলাতে যে পরিমাণ সময় লাগে তাতে তারতম্য রয়েছে। আপনি এটি গড়তে পারেন এবং একটি ধ্রুবক এ এটি ক্যাপচার করতে পারেন c
। তবে এখানে মৌলিক ক্রিয়াকলাপ - সবার সাথে হাত মিলানো --- সর্বদা আনুপাতিক হবে O(N)
, তা যাই হোক না কেন c
। আমাদের ককটেল পার্টিতে যাওয়া উচিত কিনা তা নিয়ে বিতর্ক করার সময় আমরা প্রায়শই বেশি আগ্রহী যে এই সভাগুলি কেমন হবে তার বিশদ বিবরণের চেয়ে আমাদের সবার সাথে দেখা করতে হবে।
O (n ^ 2)
ককটেল পার্টির হোস্টটি চায় আপনি একটি নির্বোধ খেলা খেলেন যেখানে প্রত্যেকে প্রত্যেকের সাথে দেখা করে। সুতরাং, আপনাকে অবশ্যই N-1
অন্য লোকের সাথে দেখা করতে হবে এবং, কারণ পরবর্তী ব্যক্তি ইতিমধ্যে আপনার সাথে দেখা করেছে, তাদের অবশ্যই N-2
লোকদের সাথে দেখা করতে হবে , ইত্যাদি। এই সিরিজের যোগফল x^2/2+x/2
। উপস্থিতদের সংখ্যা বাড়ার সাথে সাথে এই x^2
শব্দটি দ্রুতগতিতে আসে , সুতরাং আমরা কেবল সমস্ত কিছু বাদ দিই।
O (n ^ 3)
আপনাকে অন্য সবার সাথে দেখা করতে হবে এবং প্রতিটি বৈঠকের সময় আপনার অবশ্যই রুমে থাকা প্রত্যেকের সম্পর্কে কথা বলতে হবে।
হে (1)
হোস্ট কিছু ঘোষণা করতে চায়। তারা একটি ওয়াইনগ্লাস ডিং করে এবং জোরে কথা বলে। প্রত্যেকে সেগুলি শুনে। দেখা যাচ্ছে যে সেখানে উপস্থিত কত জন উপস্থিতি নেই, এই অপারেশনটি সর্বদা একই পরিমাণে সময় নেয়।
ও (লগ এন)
হোস্ট সবাইকে বর্ণানুক্রমিকভাবে টেবিলে রেখে দিয়েছে। ড্যান কোথায়? আপনি যুক্তি দিয়েছিলেন যে তাকে অবশ্যই অ্যাডাম এবং ম্যান্ডির মধ্যে থাকতে হবে (অবশ্যই ম্যান্ডি এবং জাচের মধ্যে নয়)। দেওয়া হল, তিনি কি জর্জ এবং ম্যান্ডির মধ্যে আছেন? না, তাকে অবশ্যই অ্যাডাম এবং ফ্রেড এবং সিনডি এবং ফ্রেডের মধ্যে থাকতে হবে। এবং আরও ... আমরা অর্ধেক সেটটি এবং তার পরে অর্ধেক সেটটি দেখে দক্ষতার সাথে ড্যানকে সনাক্ত করতে পারি। শেষ পর্যন্ত, আমরা ও (লগ 2 এন) ব্যক্তির দিকে তাকাচ্ছি ।
ও (এন লগ এন)
উপরের অ্যালগরিদম ব্যবহার করে আপনি টেবিলে কোথায় বসবেন তা খুঁজে পেতে পারেন। যদি প্রচুর সংখ্যক লোক টেবিলে আসে, একবারে এবং একবারে এই কাজটি করে, এটি ও (এন লগ এন) সময় নিতে পারে। এটি প্রমাণিত হয় যে কোনও আইটেমের সংগ্রহের তুলনা করার সময় সেটিকে সাজানোর জন্য কত সময় লাগে।
সেরা / সবচেয়ে খারাপ কেস
আপনি পার্টিতে পৌঁছেছেন এবং ইনিগোটি সন্ধান করতে হবে - এটি কতক্ষণ সময় নেবে? এটি আপনি পৌঁছানোর উপর নির্ভর করে। সবাই যদি চারপাশে কল্পনা করে থাকে যে আপনি সবচেয়ে খারাপ ক্ষেত্রে আঘাত করেছেন: এটিতে O(N)
সময় লাগবে । তবে, সবাই যদি টেবিলে বসে থাকেন তবে O(log N)
সময় লাগবে মাত্র । অথবা হতে পারে আপনি হোস্টের ওয়াইনগ্লাস-চেঁচানোর শক্তিটি উত্তোলন করতে পারেন এবং এটিতে O(1)
সময় লাগবে ।
হোস্টটি অনুপলব্ধ বলে ধরে নিলে, আমরা বলতে পারি যে আপনি পৌঁছানোর সময় দলের অবস্থার উপর নির্ভর করে ইনিগো-ফাইন্ডিং অ্যালগরিদমের একটি নিম্ন-সীমা O(log N)
এবং একটি উপরের-সীমানা রয়েছে O(N)
।
স্পেস এবং যোগাযোগ
অ্যালগরিদম কীভাবে স্থান বা যোগাযোগ ব্যবহার করে তা বোঝার জন্য একই ধারণাগুলি প্রয়োগ করা যেতে পারে।
প্রাক্তন সম্পর্কে "গানের জটিলতা" শিরোনামে নূত একটি সুন্দর কাগজ লিখেছেন ।
উপপাদ্য 2: জটিলতা ও (1) এর ইচ্ছামত দীর্ঘ গান আছে।
প্রুফ: (ক্যাসি এবং সানশাইন ব্যান্ডের কারণে)। (15) দ্বারা সংজ্ঞায়িত গানগুলি বিবেচনা করুন, তবে সাথে
V_k = 'That's the way,' U 'I like it, ' U
U = 'uh huh,' 'uh huh'
সকল কে।