একটি অ্যালগরিদমের জটিলতা পরিমাপের জন্য, এটি কি সময় জটিলতা, বা গুণগত জটিলতা? তাদের মধ্যে পার্থক্য কী?
আমি অ্যালগরিদমে বেসিক (সর্বাধিক ব্যয়বহুল) অপারেশনের সর্বাধিক (নিকৃষ্ট) গণনা গণনা করতাম।
একটি অ্যালগরিদমের জটিলতা পরিমাপের জন্য, এটি কি সময় জটিলতা, বা গুণগত জটিলতা? তাদের মধ্যে পার্থক্য কী?
আমি অ্যালগরিদমে বেসিক (সর্বাধিক ব্যয়বহুল) অপারেশনের সর্বাধিক (নিকৃষ্ট) গণনা গণনা করতাম।
উত্তর:
গুণগত জটিলতা কেবলমাত্র একটি সাধারণ শব্দ, কারণ সময় কেবলমাত্র সেই সংস্থান নয় যা আমরা বিবেচনা করতে চাই। পরবর্তী সর্বাধিক সুস্পষ্ট হ'ল একটি অ্যালগরিদম যে স্থানটি ব্যবহার করে সেগুলি হ'ল এবং তাই আমরা গণ্য জটিলতার অংশ হিসাবে স্পেস জটিলতা সম্পর্কেও কথা বলতে পারি । আপনার যত্ন নেওয়ার যে কোনও পরিমাপের জন্য আমরা এটি করতে পারি, অবশ্যই কিছু ব্যবস্থা অন্যদের চেয়ে বেশি কার্যকর।
সুতরাং একটি অ্যালগরিদম সবচেয়ে খারাপ ক্ষেত্রে যে পদক্ষেপ গ্রহণ করে তার গণনা করা সমস্যার সমাধানের জন্য একটি সময় জটিলতা দেয়, এটি কত স্মৃতি / কত টেপ কোষ ব্যবহার করে তা গণনা করে একটি স্পেস জটিলতা বাধা দেয় ইত্যাদি ইত্যাদি etc.
এটিও মনে রাখবেন যে আপনি কঠোর হতে চাইলে জটিলতা সমস্যাটিকে বোঝায়, অ্যালগরিদমকে নয়, তাই কোনও সমস্যার জটিলতার সীমা থাকে, একটি অ্যালগরিদমের রিসোর্স সীমা থাকে (চলমান সময়, স্থান ব্যবহার ...)। এটি কেবল সংজ্ঞাগত আনুষ্ঠানিকতার বিষয়, জটিলতা তত্ত্ব সমস্যাগুলি নিয়ে কাজ করে। হ্যাঁ, আলগোরিদিম বিশ্লেষণ সমস্যা ও জটিলতা এবং algorithmics ঘনিষ্ঠভাবে একসঙ্গে বাঁধা এর জন্য একটি কী সরঞ্জাম আছে, কিন্তু আনুষ্ঠানিকভাবে আমরা বলতে হবে মার্জ-বাছাই (একটি অ্যালগরিদম) হয় , এটা সমস্যা S ণ দ টি আমি এন জি যা হয় পি । মার্জ-বাছাই নির্দিষ্ট সংস্থানগুলি ব্যবহার করে ( ও ( এন লগ এন )উদাহরণস্বরূপ পদক্ষেপ)। অ্যালগরিদমের রিসোর্স সীমাবদ্ধ এবং সঠিকতা বোঝায় জটিলতার (উপরের) সমস্যার জন্য আবদ্ধ, তবে তারা বিভিন্ন জিনিস। এছাড়াও টি সি 0 -complete অধীনে একটি সি 0 -reductions, এই জটিলতা আবদ্ধ শুধুমাত্র সত্যিই একটি সমস্যার জন্য বিবৃত করা যেতে পারে (কিন্তু আলগোরিদিমিক পরিণতি থাকবে না)।
সাইক্লোমেটিক জটিলতা প্রায়শই গণনাগত জটিলতার পরিমাপ হিসাবে ব্যবহৃত হয় একটি দরকারী উদাহরণ /programming/9097987/calculation-of-cyclomatic-complexity এ সরবরাহ করা হয়
অ্যালগোরিদমের মাধ্যমে অনেকগুলি পৃথক (সম্ভবত নেস্টেড) পাথ থাকতে পারে যা এটিকে একটি উচ্চ চক্রবৃত্তীয় জটিলতা দেয় তবে কোনও লুপ এটিকে স্বল্প সময়ের জটিলতা দেয় না। একটি একক লুপ সহ একটি প্রোগ্রামে একটি সাইক্লোমেটিক জটিলতা কম তবে সম্ভবত একটি উচ্চ সময়ের জটিলতা থাকবে।
কোডের জন্য প্রয়োজনীয় রক্ষণাবেক্ষণের পরিমাপ হিসাবে প্রায়শই সাইক্লোমেটিক জটিলতা ব্যবহৃত হয়। Http://docs.sonarqube.org/display/SONAR/Bad+ বিতরণ +++ কমপ্লিক্সিতে আরও বিশদ আলোচনা সরবরাহ করা হয়েছে । এটি সময়ের জটিলতার সাথে আলাদা যা কোডের সময় পরিমাপ চালানো হয় এবং এটি সিস্টেমের কার্যকারিতা সম্পর্কে ব্যবহারকারীদের উপলব্ধি মূল্যায়নের জন্য ব্যবহার করা যেতে পারে।