📄 load.cpp
字号:
// greedy container loading#include <iostream.h>void IndirectSort(int w[], int t[], int n){// Cluge to test when weights already in order. for (int i=1; i <= n; i++) t[i] = i;}template<class T>void ContainerLoading(int x[], T w[], T c, int n){// Greedy algorithm for container loading. // Set x[i] = 1 iff container i, 1<=i<=n is loaded. // c is ship capacity, w gives container weights. // do indirect addressing sort of weights // t is the indirect addressing table int *t = new int [n+1]; IndirectSort(w, t, n); // now, w[t[i]] <= w[t[i+1]], 1<=i<n // initialize x for (int i = 1; i <= n; i++) x[i] = 0; // select objects in order of weight for (int i = 1; i <= n && w[t[i]] <= c; i++) { x[t[i]] = 1; c -= w[t[i]];} // remaining capacity delete [] t;}void main(void){ int w[9] = {0, 20, 50, 50, 80, 90, 100, 150, 200}, x[9]; ContainerLoading(x, w, 400, 8); cout << "Loading vector is" << endl; for (int i = 1; i <= 8; i++) cout << x[i] << ' '; cout << endl;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -