public static Integer recursiveBinarySearch(Integer[] array, int startIndex, int endIndex, int number) {
if (startIndex > endIndex) {
return null;
}
int midIndex = (startIndex + endIndex) / 2;
if (array[midIndex] == number) {
return midIndex;
} else if (array[midIndex] > number) {
return recursiveBinarySearch(array, 0, midIndex - 1, number);
} else if (array[midIndex] < number) {
return recursiveBinarySearch(array, midIndex + 1, endIndex, number);
} else {
return null;
}
}
public static int search(Integer[] data, int number) {
int low;
int high;
int mid;
if (data == null)
return -1;
low = 0;
high = data.length - 1;
while (low <= high) {
mid = (low + high) / 2;
if (number < data[mid]) {
high = mid - 1;
} else if (number > data[mid]) {
low = mid + 1;
} else if (number == data[mid]) {
return mid;
}
}
return -1;
}
分享到:
相关推荐
使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的
本文将探讨如何使用C++语言来实现Fibonacci数列的递归和非递归算法。 **递归算法** 递归是一种解决问题的方法,它定义一个函数或过程通过调用自身来解决问题。对于Fibonacci数列,递归实现非常直观: ```cpp int ...
斐波那契数列: 在数学上它以递归的方式进行定义,指这样的一个数列:0、1、1、2、3、5、8、13、21、34、55、89、144……,即前两个数为分别为0和1...本例为LabVIEW中编写递归VI实现求解斐波那契数列Fib(n)中第n项的值
斐波那契数列是一个经典的数学概念,在计算机科学...了解和实践非递归的斐波那契数列计算,对于提升C++编程技能和算法理解能力非常有帮助。在实际项目中,类似的方法也可以应用于其他需要高效计算序列或序列项的问题。
### Fibonacci数列的非递归求解方法 非递归方法避免了递归方法的重复计算问题,提高了计算效率。给定文件中的第二个示例展示了如何使用循环结构来求解Fibonacci数列: ```c #include void main() { int n; scanf...
知识点二:递归和非递归实现斐波那契数列 斐波那契数列可以使用递归或非递归方法来实现。递归方法是使用函数调用自身来计算斐波那契数列,而非递归方法是使用循环或其他数据结构来实现。非递归方法通常比递归方法更...
在这个文档中,作者比较了两种计算斐波那契数列的方法:递归和非递归(也称为迭代)。递归方法通常更直观,但效率较低,而迭代方法虽然稍显复杂,但在处理大数时更有效率。 递归算法是通过调用自身来解决问题的。在...
斐波那契数列是一个经典的数学概念,在计算机科学和编程...通过这个例子,我们可以深入理解递归和非递归算法,以及如何在C语言中实现这些算法。同时,这也是一个很好的机会去探讨算法优化、数据结构和问题解决技巧。
Fibonacci数列的java实现,包括递归与非递归实现
通过对斐波那契数列递归与非递归算法的分析比较,我们可以得出以下结论: 1. **递归算法**:虽然简单直观,但由于其高时间复杂度和潜在的栈溢出风险,不适合处理大规模数据。 2. **非递归算法**:通过迭代的方式...
Java 中的 Fibonacci 数列是通过非递归的方法来实现的,该方法使用循环来计算 Fibonacci 数列的每个元素,而不使用递归函数。 Java 中的 Fibonacci 数列的定义是从 0 开始的,第一个 Fibonacci 数是 0,第二个是 1...
* 通过递归和非递归方法实现最大公约数的计算 * 通过递归和非递归方法实现阶乘的计算 * 实现斐波那契数列的计算 * 实现汉诺塔问题的解决 四、代码实现 下面是实验的代码实现: 1. 汉诺塔问题的解决 ```c void ...
在Java中,斐波那契数列可以用递归和非递归两种方法来实现。 1. **递归实现**: 递归实现是最直观的方式,它通过函数自身调用来解决问题。在上述代码中,`feibonaci1` 方法就使用了递归。当计算 `feibonaci1(n)` ...
在C#中,斐波那契数列可以通过两种主要方法实现:递归和非递归(或迭代)。 1. **递归实现**: 递归实现是最直观的方法,它通过调用自身来计算数列中的下一个数字。在提供的代码中,`TopDownRecursion`函数就是递归...
### Java实现用递归算法和非递归算法求解斐波那契数列问题 #### 知识点解析 在给定的文档标题与描述中,“Java实现用递归算法和非递归算法求解斐波那契数列问题”明确指出了本文将围绕Java编程语言、递归算法与非...
斐波那契数列(fibonacci)-java的非递归实现。
在C语言中实现斐波那契数列,特别是对于大数计算,通常需要避免使用递归,因为递归可能导致栈溢出和效率低下。 非递归的斐波那契数列算法通常采用迭代或矩阵乘法。在给定的描述中,我们关注的是迭代方法,并且特别...
- **效率**:由于使用了迭代而非递归,因此运行效率较高。 #### 优化建议 - **内存分配**:如果需要计算更大的Fibonacci数,可以考虑使用动态内存分配,以便根据实际需求调整数组大小。 - **错误处理**:增加对输入...
斐波那契数列(Fibonacci Sequence)是数学中一个经典的数列,它的定义如下:第一项F1和第二项F2都是1,从第三项开始,每一项都等于前两项之和,即Fn = Fn-1 + Fn-2。在给定的C语言代码中,我们看到的是一个用于计算...