From 9062c4928b8c70f43b8057566ae86b8107ff3ccc Mon Sep 17 00:00:00 2001 From: Rajashree Parhi Date: Sun, 7 Oct 2018 20:10:35 +0530 Subject: [PATCH 1/2] Added fractional knapsack in C++ --- .../fractional_knapsack/C++/a.out | Bin 0 -> 13216 bytes .../fractional_knapsack/C++/frac_knapsack.cpp | 122 ++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100755 dynamic_programing/fractional_knapsack/C++/a.out create mode 100644 dynamic_programing/fractional_knapsack/C++/frac_knapsack.cpp diff --git a/dynamic_programing/fractional_knapsack/C++/a.out b/dynamic_programing/fractional_knapsack/C++/a.out new file mode 100755 index 0000000000000000000000000000000000000000..0281dfdc091131474a1626b58090682dd71d90b1 GIT binary patch literal 13216 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 Mh21<0YU + +using namespace std; + +int main() + +{ + + int array[2][100], n, w, i, curw, used[100], maxi = -1, totalprofit = 0; + + + cout << "Enter number of objects: "; + + cin >> n; + + + + cout << "Enter the weight of the knapsack: "; + + cin >> w; + + cout<<"Array's first row is to store weights and second row is to store profits"<> array[0][i] >> array[1][i]; + + } + + for (i = 0; i < n; i++) + + { + + used[i] = 0; + + } + + curw = w; + + + + while (curw >= 0) + + { + + maxi = -1; + + + + for (i = 0; i < n; i++) + + { + + if ((used[i] == 0) && ((maxi == -1) || (((float) array[1][i] + + / (float) array[0][i]) > ((float) array[1][maxi] + + / (float) array[0][maxi])))) + + { + + maxi = i; + + } + + } + + used[maxi] = 1; + + + + curw -= array[0][maxi]; + + + + totalprofit += array[1][maxi]; + + if (curw >= 0) + + { + + cout << "\nAdded object " << maxi + 1 << " Weight: " + + << array[0][maxi] << " Profit: " << array[1][maxi] + + << " completely in the bag, Space left: " << curw; + + } + + else + + { + + cout << "\nAdded object " << maxi + 1 << " Weight: " + + << (array[0][maxi] + curw) << " Profit: " + + << (array[1][maxi] / array[0][maxi]) * (array[0][maxi] + + + curw) << " partially in the bag, Space left: 0" + + << " Weight added is: " << curw + array[0][maxi]; + + totalprofit -= array[1][maxi]; + + totalprofit += ((array[1][maxi] / array[0][maxi]) * (array[0][maxi] + + + curw)); + + } + + } + + + + cout << "\nBags filled with objects worth: " << totalprofit; + + return 0; + +} \ No newline at end of file From 83dc75893ce95955cec71e5524e3deae4d664adb Mon Sep 17 00:00:00 2001 From: Rajashree Parhi Date: Sun, 7 Oct 2018 21:05:17 +0530 Subject: [PATCH 2/2] Implemented longest common subsequence in C --- .../longest_common_subsequence/C/hello1 | Bin 0 -> 12792 bytes .../C/long_comm_subs.c | 63 ++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100755 dynamic_programing/longest_common_subsequence/C/hello1 create mode 100644 dynamic_programing/longest_common_subsequence/C/long_comm_subs.c diff --git a/dynamic_programing/longest_common_subsequence/C/hello1 b/dynamic_programing/longest_common_subsequence/C/hello1 new file mode 100755 index 0000000000000000000000000000000000000000..1535e3bb5800d82d40b0f21f82236b9344179349 GIT binary patch literal 12792 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 bq&}N-Zl850ppwu2g@vXDZRN5SyZyfbSC(`b literal 0 HcmV?d00001 diff --git a/dynamic_programing/longest_common_subsequence/C/long_comm_subs.c b/dynamic_programing/longest_common_subsequence/C/long_comm_subs.c new file mode 100644 index 0000000..77702c3 --- /dev/null +++ b/dynamic_programing/longest_common_subsequence/C/long_comm_subs.c @@ -0,0 +1,63 @@ +#include +#include + +int i,j,m,n,c[20][20]; +char x[20],y[20],b[20][20]; + +void print(int i,int j) +{ + if(i==0 || j==0) + return; + if(b[i][j]=='c') + { + print(i-1,j-1); + printf("%c",x[i-1]); + } + else if(b[i][j]=='u') + print(i-1,j); + else + print(i,j-1); +} + +void lcs() +{ + m=strlen(x); + n=strlen(y); + for(i=0;i<=m;i++) + c[i][0]=0; + for(i=0;i<=n;i++) + c[0][i]=0; + + //c, u and l denotes cross, upward and downward directions respectively + for(i=1;i<=m;i++) + for(j=1;j<=n;j++) + { + if(x[i-1]==y[j-1]) + { + c[i][j]=c[i-1][j-1]+1; + b[i][j]='c'; + } + else if(c[i-1][j]>=c[i][j-1]) + { + c[i][j]=c[i-1][j]; + b[i][j]='u'; + } + else + { + c[i][j]=c[i][j-1]; + b[i][j]='l'; + } + } +} + +int main() +{ + printf("Enter 1st sequence:"); + scanf("%s",x); + printf("Enter 2nd sequence:"); + scanf("%s",y); + printf("\nThe Longest Common Subsequence is "); + lcs(); + print(m,n); + return 0; +} \ No newline at end of file