Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

1차원 객체와 M개의 Bin에 대한 첫 번째 맞춤 감소를 구현하는 C++ 프로그램

<시간/>

다음은 1차원 개체와 M개의 빈에 대한 First Fit Deccreasing을 구현하는 C++ 프로그램입니다.

필수 함수 및 의사 코드:

Begin
   function binPack() returns number of bins required.
   Initialize binC = 0
   Initialize an array to store binVal.
   Place items one by one.
   function sort() to perform bubble sort in the descending order.
End

예시 코드

#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);
}

출력

Enter the number of items in Set: 7
Enter 7 items:4
6
7
5
3
2
1
Enter the bin size: 5
Number of bins required using first fit decreasing algorithm is: 3