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