এখানে ১-ডি অবজেক্ট (1-D objects) এবং M বিন (bins) এর জন্য ফার্স্ট ফিট ডিক্রিজিং (First Fit Decreasing) বাস্তবায়ন করার একটি সি++ প্রোগ্রাম দেওয়া হলো।
প্রয়োজনীয় ফাংশন ও সিউডোকোড:
শুরু ফাংশন binPack() রিটার্ন করে প্রয়োজনীয় বিনের সংখ্যা। binC = 0 ইনিশিয়ালাইজ করুন binVal সংরক্ষণ করার জন্য একটি অ্যারে ইনিশিয়ালাইজ করুন। আইটেমগুলো একে একে রাখুন। ফাংশন sort() ডিসেন্ডিং অর্ডারে বাবল সোর্ট (bubble sort) করতে। শেষ
উদাহরণ কোড
#include <iostream> using namespace std; void binPack(int *a, int s, int n) { int binC = 0; int binVal[n]; for (int i = 0; i < n; i++) binVal[i] = s; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { if (binVal[j] - a[i] >= 0) { binVal[j] -= a[i]; break; } } for (int i = 0; i < n; i++) if (binVal[i] != s) binC++; cout << "Number of bins required using first fit decreasing algorithm is: " << binC; } int* sort(int *seq, int n) { for (int i = 0; i < n; i++) for (int j = 0; j < n - 1; j++) if (seq[j] < seq[j + 1]) { seq[j] = seq[j] + seq[j + 1]; seq[j + 1] = seq[j] - seq[j + 1]; seq[j] = seq[j] - seq[j + 1]; } return seq; } int main(int argc, char **argv) { cout << "Enter the number of items in Set: "; int n; cin >> n; cout << "Enter " << n << " items:"; int a[n]; for (int i = 0; i < n; i++) cin >> a[i]; cout << "Enter the bin size: "; int s; cin >> s; int *seq = sort(a, n); binPack(seq, s, n); }
আউটপুট
সেটে আইটেমের সংখ্যা লিখুন: ৭ ৭টি আইটেম লিখুন: 4 6 7 5 3 2 1 বিন সাইজ লিখুন: ৫ ফার্স্ট ফিট ডিক্রিজিং অ্যালগরিদম ব্যবহার করে প্রয়োজনীয় বিনের সংখ্যা: ৩