首页 电脑教程 电脑知识 如何使用递归算法实现Java二分法查找

如何使用递归算法实现Java二分法查找

Jan 12, 2024 pm 08:06 PM

如何使用递归算法实现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二分法查找

高手编程 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何求解Windows错误代码' Invalid_data_access_trap” (0x00000004) 如何求解Windows错误代码' Invalid_data_access_trap” (0x00000004) Mar 11, 2025 am 11:26 AM

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

如何编辑注册表? (警告:谨慎使用!) 如何编辑注册表? (警告:谨慎使用!) Mar 21, 2025 pm 07:46 PM

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

如何管理Windows的服务? 如何管理Windows的服务? Mar 21, 2025 pm 07:52 PM

文章讨论了管理系统健康的Windows服务,包括启动,停止,重新启动服务以及稳定性的最佳实践。

发现如何在Windows设置中修复驱动健康警告 发现如何在Windows设置中修复驱动健康警告 Mar 19, 2025 am 11:10 AM

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

哪个应用程序使用ene.sys 哪个应用程序使用ene.sys Mar 12, 2025 pm 01:25 PM

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

如何使用组策略编辑器(gpedit.msc)? 如何使用组策略编辑器(gpedit.msc)? Mar 21, 2025 pm 07:48 PM

本文介绍了如何在Windows中使用组策略编辑器(GPEDIT.MSC)来管理系统设置,突出显示常见的配置和故障排除方法。它指出gpedit.msc在Windows Home Edition中不可用,建议

如何更改文件类型的默认应用程序? 如何更改文件类型的默认应用程序? Mar 21, 2025 pm 07:48 PM

文章讨论了更改Windows上文件类型的默认应用程序,包括恢复和批量更改。主要问题:没有内置散装更改选项。

MSCONFIG不断恢复为选择性启动吗? 2个解决方案 MSCONFIG不断恢复为选择性启动吗? 2个解决方案 Mar 28, 2025 pm 12:06 PM

您是否质疑Msconfig不断恢复到窗口上的选择性启动的问题?如果需要,如何切换到普通启动?尝试在此php.cn帖子中解释的方法,以找到适合您的方法。

See all articles