求证一个贪心算法的正确性

laomai 2019-07-06 08:29:58
现在要取一个1到n的排列,要求每次取出的数ci都必须在指定区间[ai,bi]内(1<=i<=n),
换句话说就是给n个闭区间[ai,bi],然后从每个区间中选出一个数ci,要求所有的ci都在1到n之间,且不能相同.
一个贪心算法是首先对所有区间按bi升序排序,然后按ai降序排序
然后依次从每个区间中取出第一个未处理的数作为ci并输出,如果某区间的数都已经被输出过,则无解.
现在的问题就是如何证明这个算法的正确性(即如果某个区间没有备选数,则肯定无解)?
...全文
194 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
laomai 2019-07-08
  • 打赏
  • 举报
回复
我的问题是如何证明如果贪心算法无解的话则原问题肯定无解?
laomai 2019-07-08
  • 打赏
  • 举报
回复
按照那个贪心算法的话应该不会有多个的,因为区间排序之后,次序就固定了,每次都是从当前区间取第一个未匹配的数
android2008 2019-07-08
  • 打赏
  • 举报
回复
如果有多个选择需要都遍历还是随机选一个或选最大/最小?

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧