B4361 [GESP202506 四级] 排序
欢迎报名洛谷网校,报名课程可以获得对应组别的知识点讲解与答疑服务,期待和大家一起进步!点击图片即可报名。
:::align{center} :::
我们可以使用两层循环来检查队伍中任意两位同学的组合。外层循环从前往后遍历队伍中的每一位同学(比如第
对于每一对被选中的同学(第
为了方便地存储每位同学的身高和体重,我们可以使用结构体(struct)存储学生信息:
struct Stu {
int h, w;
// h 代表身高,w 代表体重。
};
这样,上文所述的排序规则可以写作:
for (int i = 1; i < n; ++i) {
for (int j = i + 1; j <= n; ++j) {
// 情况一:p[j] 的身高比 p[i] 高
bool c1 = ________;
// 情况二:两人身高相同,但 p[j] 的体重比 p[i] 重
bool c2 = ________;
// 只要任意一种情况成立,则需要交换
________
}
}
这样做,我们只需要使用二重循环完成本题,时间复杂度为