অ্যালগরিদম
একটি অ্যালগরিদম হল নির্দেশাবলীর একটি সীমাবদ্ধ সেট, যেগুলি অনুসরণ করা হলে, একটি নির্দিষ্ট কাজ সম্পন্ন করে। এটি ভাষা নির্দিষ্ট নয়, নির্দেশাবলী উপস্থাপন করতে আমরা যেকোনো ভাষা এবং চিহ্ন ব্যবহার করতে পারি।
একটি অ্যালগরিদমের মানদণ্ড
- ইনপুট: শূন্য বা তার বেশি ইনপুট বাহ্যিকভাবে অ্যালগরিদমে সরবরাহ করা হয়।
- আউটপুট: অন্তত একটি আউটপুট একটি অ্যালগরিদম দ্বারা উত্পাদিত হয়৷ ৷
- নির্দিষ্টতা: প্রতিটি নির্দেশ স্পষ্ট এবং দ্ব্যর্থহীন।
- সসীমতা: একটি অ্যালগরিদমে, সমস্ত বিভিন্ন ক্ষেত্রে সীমিত সংখ্যক পদক্ষেপের পরে এটি বন্ধ করা হবে৷
- কার্যকারিতা: প্রতিটি নির্দেশ অবশ্যই খুব মৌলিক হতে হবে, তাই সেই নির্দেশের উদ্দেশ্য অবশ্যই আমাদের কাছে খুব স্পষ্ট হতে হবে।
অ্যালগরিদমের বিশ্লেষণ
অ্যালগরিদম বিশ্লেষণ গণনাগত জটিলতার একটি গুরুত্বপূর্ণ অংশ। জটিলতা তত্ত্ব কোনো গণনামূলক কাজ সমাধান করার জন্য একটি অ্যালগরিদম দ্বারা প্রয়োজনীয় সংস্থানগুলির জন্য তাত্ত্বিক অনুমান প্রদান করে। অ্যালগরিদমের বিশ্লেষণ হল অ্যালগরিদমের সমস্যা-সমাধান ক্ষমতা বিশ্লেষণ করার প্রক্রিয়া যা প্রয়োজনীয় সময় এবং আকারের পরিপ্রেক্ষিতে (বাস্তবায়নের সময় স্টোরেজের জন্য মেমরির আকার)। যাইহোক, অ্যালগরিদম বিশ্লেষণের প্রধান উদ্বেগ হল প্রয়োজনীয় সময় বা কর্মক্ষমতা।
একটি অ্যালগরিদমের জটিলতা
একটি অ্যালগরিদমের জটিলতা একটি আকারের ইনপুট (n) এর জন্য একটি অ্যালগরিদম দ্বারা প্রয়োজনীয় সময় এবং স্থানের পরিমাণ গণনা করে। একটি অ্যালগরিদমের জটিলতাকে দুই প্রকারে ভাগ করা যায়। সময়ের জটিলতা এবং স্পেস জটিলতা .
একটি অ্যালগরিদমের সময় জটিলতা
সময়ের জটিলতাকে সেই অ্যালগরিদম কার্যকর করার জন্য প্রয়োজনীয় মোট সময়ের জন্য একটি সূত্র নির্ধারণের প্রক্রিয়া হিসাবে সংজ্ঞায়িত করা হয়। এই গণনাটি বাস্তবায়ন এবং প্রোগ্রামিং ভাষা থেকে সম্পূর্ণ স্বাধীন।
একটি অ্যালগরিদমের স্থান জটিলতা
অ্যালগরিদম সফলভাবে সম্পাদনের জন্য কতটা মেমরি স্পেস প্রয়োজন তার ভবিষ্যদ্বাণী করার জন্য একটি সূত্র নির্ধারণের প্রক্রিয়া হিসাবে স্থান জটিলতাকে সংজ্ঞায়িত করা হচ্ছে। মেমরি স্পেসকে সাধারণত প্রাথমিক মেমরি হিসেবে বিবেচনা করা হয়।