如何使用递归算法实现Java二分法查找
public class 二分法递归查找 {
public static void main(String[] args)是Java程序的入口点,是程序执行的起始位置。在这个方法中,可以编写程序的主要逻辑和功能。这个方法必须按照特定的格式来定义,才能被Java虚拟机调用执行。在main方法的参数列表中,args是一个字符串数组,可以用来接收命令行参数。通过在main方法中编写代码,我们可以实现各种各样的功能,例如打印输出、计算、循环、条件判断等 {
//定义数组,注意,二分查找数组必须是有序的数组!
int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 };是一个整型数组的声明和初始化语句,其中包含9个元素。每个元素的值分别是1, 3, 5, 7, 9, 11, 13, 15, 17。这样我们就创建了一个名为arr的整型数组,并且给它赋予了初始值。在后续的程序中,我们可以使用这个数组来进行各种操作,比如查找、排序、计
//接受查找后的返回值:索引值,如果没有则是-1;
//测试查找元素:9
int a = binarySearch(arr, 9, 0, arr.length - 1);
System.out.println("被查找数字的索引位置是:" + a);
}
//参数列表依次为:被查找的数组,查找的数字,头索引,尾索引!
public static int binary(int[] arr, int key, int start, int end) // 递归
{
//每次进来创建,中间索引值!
int mid = (star + end) / 2;
如果待查找的数小于起始索引或者大于结束索引,或者起始索引大于结束索引,则说明不存在该数,返回-1。
if (key arr[end] || start > end) {
return -1;
}
//如果中间值小于被查找的数,则重新定义头索引移至中间+1的位置,这样可以筛选掉一半的数字!
if (arr[mid]
//开始递归!
return binary(arr, key, mid + 1, end); // 在数组的后半部分继续进行二分查找
//否则,如果中间值大于被查找的数,则将尾索引重新移至中间-1的位置,这样可以筛选掉一半的数字!
} else if (arr[mid] > key) {
//开始递归!
return binary(arr, key, start, mid - 1);
} else {
//否者就是找到了,返回该索引!
return mid;
}
}
}
高手编程 JAVA语言用递归算法和 1 2 3 4 100或者是11 13 15
第一题:
public class CalSum {
public static void main(String[] args)是Java程序的入口点,是程序执行的起始位置。在这个方法中,可以编写程序的主要逻辑和功能。这个方法必须按照特定的格式来定义,才能被Java虚拟机调用执行。在main方法的参数列表中,args是一个字符串数组,可以用来接收命令行参数。通过在main方法中编写代码,我们可以实现各种各样的功能,例如打印输出、计算、循环、条件判断等
{
CalSum calSum = new CalSum();
int result = calSum.calculate(100); // 调用calSum对象的calculate方法,传入参数100,并将结果赋值给result变量。
System.out.println("1+2+3+...+100的总和等于" + result);
}
public int calculate(int number)
{
int result = 0;
if(number == 1)
{
result = 1;
}
else
{
result = number + calculate(number - 1);的结果是将当前的number与number-1的返回值相加。这个表达式可以用递归的方式来计算,每次递归调用时,number的值会减1,直到number等于1时停止递归。递归调用的返回值会不断累加到最终的结果中。这样,我们可以得到一个数列的和。
}
return result;
}
}
java里递归和迭代分别是什么算法啊
迭代是普通的循环。
例:从1加到10
int sum=0
for(int i=0;i
sum=sum+i;
}
递归是指一个函数直接或间接调用自己。
好比:从前有个庙庙里有个大和尚和小和尚,大和尚叫小和尚讲故事,小和尚说从前有个庙庙里有个大和尚和小和尚,小和尚叫大和尚讲故事,大和尚接着说从前有个庙庙里有个大和尚和小和尚,他们每天一起修行学习佛法。
递归的特点:
必有三个条件:
1. 间接或直接调用自己。
2. 在进行游戏时,一定要设定退出的条件,比如大和尚口干了不再听故事。如果没有设定退出条件,游戏可能会陷入死循环。
3。要有逻辑体(想要做的事);
public int sum(int x){
if(x
return x;
}
return x+sum(x-1);
}
int s=10;
int total=sum(s);
该例中,sum函数总是调用自己,return x+sum(x-1);
sum有退出条件, x
最后的结果是把 10+9+8+7+... 1 返回
在许多情况下,迭代和递归都可以实现相同的功能,但是有些功能迭代无法完成。此外,递归的代码更简洁,熟练使用递归可以提高代码质量。
以上是如何使用递归算法实现Java二分法查找的详细内容。更多信息请关注PHP中文网其他相关文章!

本文介绍了Windows“ Invalid_data_access_trap”(0x00000004)错误,一个关键的BSOD。 它探讨了常见原因,例如故障驱动程序,硬件故障(RAM,硬盘驱动器),软件冲突,超频和恶意软件。 特鲁

本文提供了维护ENE SYS系统的实用技巧。 它解决了普遍的问题,例如过热和数据损坏,提供预防措施,例如常规清洁,备份和软件更新。 量身定制的维护

本文确定了ENE系统实施中的五个常见陷阱:计划不足,用户培训不足,数据迁移不当,忽略安全性和测试不足。 这些错误可能导致项目延迟,系统故障

文章讨论了编辑Windows注册表,预防措施,备份方法以及不正确的编辑中的潜在问题。主要问题:系统不稳定和数据丢失的风险不当变化。

Windows设置中的驱动器健康警告是什么意思?收到磁盘警告时该怎么办?阅读本php.cn教程以获取逐步说明以应对这种情况。

本文将ene.sys视为Realtek高清音频驱动程序组件。 它详细介绍了其在管理音频硬件方面的功能,并强调了其在音频功能中的关键作用。 该文章还指导用户验证其合法性

本文介绍了Windows asio.sys音频驱动程序的故障。 常见原因包括损坏的系统文件,硬件/驱动程序不兼容,软件冲突,注册表问题和恶意软件。故障排除涉及SFC扫描,驱动程序UPDA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具