怎么把考题发在百度上去求解析几何高考题汇编过程

6到9题全部解答 要过程_百度知道
6到9题全部解答 要过程
jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://b.hiphotos<img class="ikqb_img" src="http://d.hiphotos<a href="http.baidu.hiphotos.baidu.com/zhidao/pic/item/503dd6d8611ecce4adee2.com/zhidao/wh%3D600%2C800/sign=eb36dbc713eb93fc50e1/503dd6d8611ecce4adee2.jpg" esrc="http://d.hiphotos.baidu://d
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&&&&jyeoo.com,V2.30616一道百度面试题:求数组中出现次数超过一半的数
一道百度面试题
现在有一个数组&#65292;已知一个数出现的次数超过了一半&#65292;请用O(n)的复杂度的算法找出这个数。
Yzf给出的算法&#65306;
1&#65294;&&&
遍历数组&#65292;如果元素的个数是1&#65292;算法退出
2&#65294;&&&
元素两两比较&#65292;如果两个数相同&#65292;则删去一个&#65292;如果两个数不同&#65292;则都删去。
3&#65294;&&&
复杂度分析&#65306;
每次遍历至少要删掉n/2个元素&#65292;首次遍历元素的个数是n,
segma = n + n/2 + n/4 + …
Fxzy给出的算法&#65306;
遍历整个数组&#65292;同时记录当前的出现次数最多的数Dm和出现次数Cm&#65292;方法是这样的:
如果当前元素和记录的数不同&#65292;则把Cm减1&#65292;如果出现次数小于零&#65292;则用当前元素取代Dm,
否则&#65292; Cm++
最后可以保证Dm即为所求。
算法正确性分析&#65306;
充分利用题目所给信息&#65306;一个数K出现次数超过一半&#65292;所以K一定唯一。使用相同留一个&#65292;不同全删掉的方法&#65292;只可以删掉了n/2个K,而因为K的个数&n/2&#65292;所以最后留下的一定是K.
fxzy的算法复杂度更低&#65292;时间O&#65288;n&#65289;&#65292;空间O(1),是这个问题的复杂度下限了。
Yzf说这种思想可以用来解决poj上边的一道互相说谎&#65292;但是保证说真话的人超过一半的问题。我没有见过这道题&#65292;不过我觉得这个简单的解题思路跟巧妙&#65292;值得记下来。
对于上面的第二中算法&#65292;如果数组为2 3 3 3 2 2 2
,则找出的数为3,而不是2。算法一过于复杂&#65292;因此我提出自己的算法。
首先考虑&#65292;我们采用快速排序中的一次快速排序将数组分为两部分&#65292;根据我们所选的基准数可能出现以下情况&#65306;
&&#289;求的数即为选的基准数&#65292;则可以确定在排序后中间的数即为所求的数。因为&#65292;求的数出现次数大于数组长度的一半&#65292;因此&#65292;所有小于等于该数的元素的个数必然大于数组长度的一半。则中间的数组元素即为所求的数。
&#289;求的数小于基准数&#65292;则求的数必排在基准数左边&#65292;由于求的数出现次数大于数组长度的一半&#65292;因此数组中间的元素必为所求的数。
&#289;求的数大于基准数的情况同&#289;。
&因此&#65292;采用一次快速排序算法对数组进行排列后&#65292;中间的数即为所求的数。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 大气的受热过程高考题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信