00问答网
所有问题
设计递归算法
题目:若数组A中,有一半以上的元素相同,设计一个递归算法,以O(n)时间找到这个元素
举报该问题
推荐答案 2009-11-04
基本思想是先用必要条件找,然后再遍历一遍验证是否满足条件,不用递归很容易。
因为你限制了要用递归,那么看上去只能这样了:
若a在A中占据一半以上,那么把A分成A1,A2两部分之后,a在其中至少一个子列中也占据一半以上。
利用这一性质,递归地在A1,A2中寻找候选元素,然后遍历数组以验证这两个候选元素(如果存在的话)是否满足条件。
根据归纳假设,在A1,A2中寻找候选元素的时间复杂度是O(n),再对A遍历至多两遍,复杂度仍然是O(n)。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/DnZBTBjeT.html
相似回答
递归算法
答:
递归算法是一种直接或者间接地调用自身的算法
。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。 递归算法解决问题的特点: (1) 递归就是在过程或函数里调用自身。 (2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。 (3) 递归算法...
java中
递归算法
是什么怎么算的?
答:
递归算法是一种直接或者间接调用自身函数或者方法的算法
。递归算法实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法表示问题的解。递归往往能给我们带来非常简洁非常直观的代码形式,从而使我们的编码大大简化,然而递归的思维确实跟我们的常规思维相逆的,通常都是从上而下的思维问题,而递归...
...试
设计
一个计算二叉树叶子结点树的
递归算 法
要求用
递归算法
啊_百度...
答:
1、首先要定义两个类:结点类和二叉树类。2、二叉树类的组成:建立树的函数、遍历函数、删除函数。求结点数函数。3、采用
递归
的思想,遇到标识符表示该结点为空,否则开辟空间创建新结点,同时调用递归开辟左结点和右结点。4、前序遍历函数。5、删除函数的思路:如果当前结点不为空,采用递归访问左结点...
数据结构求助
答:
为了
设计
一个
递归算法
来求二叉排序树的高度,我们可以定义高度为从根节点到最远叶节点的最长路径的长度。下面是一个简单的递归算法,用于计算给定二叉排序树的高度:int height(bitree t) {if (t == NULL) {return 0; // 空树的 height 为 0}// 左子树的高度int leftHeight = height(t->...
大家正在搜
设计递归算法的步骤
设计递归算法的关键步骤
在算法设计中递归可以无止境
递归设计
递归算法的步骤
递归算法的关键
递归算法理解
递归算法1加到100
递归算法思想
相关问题
算法设计的基本方法里面的“递归”是什么意思
设计递归算法生成n个元素的所有排列对象
递归算法的设计关键是什么
递归算法的问题
按要求设计递归算法。只需写出伪代码或画流程图,不需语言实现,...
在数据结构的算法中,1什么是递归,2如何设计递归算法
设计递归算法x(x(8))需要调用几次函数x(int n)?...
设计递归算法生成n个元素的所有排列对象