算法导论 练习题 16.1-5

xiaoxiao2021-02-27  173

void maxValue(pAct acts,int *values,int *Trace) { for(int i=0;i<N;i++) { values[i]=acts[i].value; Trace[i]=-1; } for(int i=0;i<N;i++) { for(int j=i+1;j<N;j++) { if(acts[j].start>=acts[i].end) { if(values[i]+acts[j].value>values[j]) { values[j]=values[i]+acts[j].value; Trace[j]=i; } } } } } void printTrace(int *Trace,int *values) { int max=0,k; for(int i=0;i<N;i++) { if(values[i]>max) { max=values[i]; k=i; } } while(k>=0) { printf("a[%d] ",k+1); k=Trace[k]; } }
转载请注明原文地址: https://www.6miu.com/read-13446.html

最新回复(0)