首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

二分查找算法是否要求数值各不相同时才正确?解决办法

2012-02-13 
二分查找算法是否要求数值各不相同时才正确?老师出了道题,要求用二分查找算法找出所有成绩相同的人,我认为

二分查找算法是否要求数值各不相同时才正确?
老师出了道题,要求用二分查找算法找出所有成绩相同的人,我认为题出错了,假设极端情况,所有人分数都相同,二分查找算法如何返回正确的结果?

请赐教,如果是我想错了,请高人最好能够提供具体算法,我实在是想不出来,谢谢!!!

[解决办法]
题目不清楚,二分查找要求数组有序,要查的分数已知(找出所有成绩相同的人有困难,因为要知道所有不同的成绩).
二分查找数组可以有相同元素.
[解决办法]
估计应该是这么做,首先通过二份查找找到要查找的元素,如果找到了,那么向左检查相同的元素,然后向右检查相同的元素。这个最好情况下是O(logn),最差(如lz所说极端情况)是O(n)
[解决办法]
题目是有点怪,可能老师的意思是,在每次进入循环的时候多做一次判断,看最大下标元素是否与最小元素比较,如果相等那么中间的元素都相等,但是在 返回时就麻烦了你可以定义一个全局的map,然后把开始下标和连续相等的元素个数放入map的一个元素。
当然,这是大概意思,你在实现一些细节。
老师的意思可能是 想让你练习一下二分的 思想,关键是思想,至于具体问题中的具体细节大可不必细究,如上: 二分查找算法是否要求数值各不相同时才正确?

热点排行