Θ (1) স্মৃতি বলতে কী বোঝায়?


13

আমার প্রফেসরের কাছ থেকে ইন সিটু-অ্যালগরিদমের সংজ্ঞা রয়েছে, তবে আমি এটি বুঝতে পারি না।

ইন-সিটু অ্যালগরিদমগুলি al (1) মেমরির সাহায্যে পরিচালিত অ্যালগরিদমগুলিকে বোঝায়।

ওটার মানে কি?



4
"একটি অ্যালগরিদম সিটু অ্যালগরিদম বা ইন-প্লেস অ্যালগরিদম হিসাবে বলা হয়, যদি অ্যালগরিদম কার্যকর করতে অতিরিক্ত পরিমাণ মেমরির প্রয়োজন হয় ও (1), [স্মৃতি] যত বড়ই হোক না কেন ধ্রুবক ছাড়িয়ে যায় না ইনপুট । উদাহরণস্বরূপ, হিপসোর্টটি সিটো বাছাই করা অ্যালগরিদমকে। " en.wikedia.org/wiki/In_situ# কম্পিউটার_সায়েন্স
অবারন

অউবারন, এটি যুক্ত করা উচিত যে ( 1 ) এর চেয়ে আরও বেশি প্রয়োজনীয়তা আরোপ করে : যে কোনও নির্দিষ্ট অনুরোধে ব্যবহৃত মোট মেমরিটি ইনপুটটির আকার নির্বিশেষে ধ্রুবকের নিচে পড়ে না । Θ(1)O(1)
ওলাথে

1
@ ওলতে আমি এখনও এমন একটি অ্যালগরিদম দেখতে পেয়েছি যা শূন্যের চেয়ে বেশি ব্যবহার করে তবে কোনও সংস্থার ধ্রুবকের চেয়ে কম
অ্যাড্রিয়েনএন

@ অ্যাড্রিয়ানএন, ফাইলগুলির এইএস এনক্রিপশন একটি ধ্রুবক উপরের সীমানার নীচে র্যাম ব্যবহারের মাধ্যমে সম্পন্ন হয়। আপনি একবারে একটি ব্লক প্রক্রিয়া করেন, প্রতিটি ব্লকের প্রসেস করতে একই পরিমাণ র‌্যামের প্রয়োজন হয় এবং র‌্যামটি একটি ব্লক থেকে অন্য ব্লকটিতে পুনরায় ব্যবহার করা যেতে পারে। এর একটি সহজ উদাহরণ হ'ল ASCII- এনকোডযুক্ত ফাইলের সমস্ত অক্ষর বড় হাতের মধ্যে রূপান্তর করা। আপনি একটি ব্লকে পড়তে পারেন, ফাইলটির 4096 বাইট বলুন, 4096 বাইট প্রসেস করুন, সেই ব্লকের ফলাফল লিখুন এবং পরবর্তী ব্লকের জন্য একই র্যামটি পুনরায় ব্যবহার করুন।
ওলাথে

উত্তর:


13

প্রথমে, অর্থ কী আনপ্যাক করা যাক ।Θ(1)

বিগ এবং বড় হ'ল ফাংশনের ক্লাস। সেখানে একটি প্রথাগত সংজ্ঞা এখানে , কিন্তু এই প্রশ্ন উদ্দেশ্যে, আমরা বলতে যে একটা ফাংশন হয় হে ( 1 ) আছে কিনা একটি ধ্রুবক যেখানে, সব জন্য এক্স , ( এক্স ) সি । যে, ধ্রুবক ক্রিয়া হিসাবে সবচেয়ে দ্রুত বৃদ্ধি পায়।OΘfO(1)cxf(x)Cf

Big- ধ্রুবক ফাংশন জন্য অনেক মানে এই নয়, যখন অ্যালগরিদম সময় বা স্থান ব্যবহার বর্ণনা, সেখানে ধ্রুবক অনেক নিচে নয় কারণ। তবে এর অর্থ কী তা বোঝাতে , f Θ ( 1 ) যদি কিছু ধ্রুবক থাকে c , d যেমন, সমস্ত x , d f ( x ) c এর জন্য । যে, কমপক্ষে হিসাবে দ্রুত বৃদ্ধি পায় এবং সর্বাধিক তত দ্রুত, একটি ধ্রুবক ফাংশন হিসাবে।ΘfΘ(1)c,dxdf(x)cf

এখন এর মেমরির ব্যবহারের সাথে কী করার আছে? কিছু অ্যালগরিদম বিবেচনা করুন । কিছু (গাণিতিক) ফাংশন যা একটি ইনপুট দেওয়া হয় এন , আপনার আলগোরিদিম সর্বাধিক মেমোরি ব্যবহার দেয় একটি আকারের কোনো ইনপুট উপর এন । আসুন এই ফাংশন কল মি মিAnAnmem

সুতরাং, এখন আমরা আমাদের দুটি ধারণাকে একত্রিত করি। যদি একটি অ্যালগরিদম মেমরি ব্যবহার করে, তবে এর মেমরি ব্যবহারের ক্রিয়াটি Θ ( 1 ) এ থাকে , যার অর্থ কিছু ডি , সি বিদ্যমান থাকে , যে কোনও ইনপুটের জন্য, ব্যবহৃত মেমরিটি ডি এবং সি এর মধ্যে থাকেΘ(1)Θ(1)d,cdc

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

Θ(n)


"কার্যকরভাবে এর ইনপুট উপর নির্ভর করে না।" - "কার্যকরভাবে" কোন সংজ্ঞা জন্য?
রাফেল

হিসাবে, ব্যবহৃত মেমরিটি ইনপুটটির উপর নির্ভর করে পরিবর্তিত হতে পারে তবে কেবল একটি নির্দিষ্ট ব্যবধানের মধ্যে। আপনি আরও ভাল শব্দটির কথা ভাবতে পারলে নির্দ্বিধায় এটিকে সম্পাদনা করুন।
jmite

dc

সহজ উদাহরণস্বরূপ উদাহরণ (গুলি) সহায়ক হবে
vzn

8

অ্যালগরিদমের ধ্রুবক স্পেস জটিলতা

আপনার অ্যালগরিদম যে পরিমাণ মেমরি ব্যবহার করে তা ইনপুট থেকে স্বতন্ত্র।

1010

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

ইন-সিটু অ্যালগরিদমগুলি ইনপুট দ্বারা দখল করা স্থানটিকে বিবেচনা করে না এবং স্থানের জটিলতা গণনার সময় কেবলমাত্র অতিরিক্ত স্থানটিকে বিবেচনা করে।


3
Θ(1)

@ ওলথ স্পেস প্রতিটি ইনপুট দ্বারা বাইটের বিচারে এবং ইনপুট সংখ্যার ক্ষেত্রে সংখ্যা দুটি পৃথক ধারণা নয়?
পূর্বক

0

এর অর্থ হল অ্যালগরিদমের জন্য প্রয়োজনীয় অতিরিক্ত মেমরি পরিমাণটি কিছু ধ্রুবক পরিমাণের চেয়ে বেশি নয় যা যথেষ্ট পরিমাণে বড় ইনপুটটির জন্য ইনপুট আকারের উপর নির্ভর করে না।


2
ΘOΩO(x2)f(x)=3x2 f(x)=xΘ(x2)f(x)=3x2f(x)=x
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.