当前位置:嗨网首页>书籍在线阅读

10-伪代码详解

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

2.2.4 伪代码详解

(1)数据结构定义

根据算法设计描述,我们用一维数组存储古董的重量:

double w[N];  //一维数组存储古董的重量

(2)按重量排序

可以利用C++中的排序函数sort(见附录B),对古董的重量进行从小到大(非递减)排序。要使用此函数需引入头文件:

#include <algorithm>

语法描述为:

sort(begin, end)//参数begin和end表示一个范围,分别为待排序数组的首地址和尾地址
                //sort函数默认为升序

在本例中只需要调用sort函数对古董的重量进行从小到大排序:

sort(w, w+n); //按古董重量升序排序

(3)按照贪心策略找最优解

首先用变量ans记录已经装载的古董个数,tmp代表装载到船上的古董的重量,两个变量都初始化为0。然后按照重量从小到大排序,依次检查每个古董,tmp加上该古董的重量,如果小于等于载重量c,则令ans ++;否则,退出。

int tmp = 0,ans = 0;  //tmp代表装载到船上的古董的重量,ans记录已经装载的古董个数
for(int i=0;i<n;i++)
{
  tmp += w[i];
  if(tmp<=c)
     ans ++;
  else
     break;
}