日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java实现二分法递归_Java递归实现二分法

發(fā)布時(shí)間:2025/3/20 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现二分法递归_Java递归实现二分法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/*

遞歸實(shí)現(xiàn)二分法的進(jìn)化

*/

import?java.util.Scanner;

public?class?RecursionNext2{

public?static?void?main(String[]args)

{

//接收一個(gè)要尋找的數(shù)

System.out.println("請(qǐng)輸入:");

Scanner?sc=new?Scanner(System.in);

int?num?=?sc.nextInt();

int?[]a={1,2,3,4,5,6,7,8,9};

int?front?=?0;

int?end=a.length-1;

int?index=findArray(a,front,end,num);

System.out.println(index);

}

//遞歸實(shí)現(xiàn)二分法

public?static?int?findArray(int?[]b,int?front,int?end,int?num)

{

int?index=-1;

int?mid?=?(front+end)/2;

if(b==null)

{

return?index;

}

if(front<=end){

if(b[mid]==num)

{

return?mid;

}

else?if(b[mid]num)

{

return?findArray(b,front,mid-1,num);

}

}

return?-1;

}

}

分析此程序:

首先二分法:

/*

二分法

*/

import?java.util.Scanner;

public?class?bisection{

public?static?void?main(String[]args)

{

int?[]a={1,2,3,4,5,6,7,8};

Scanner?sc=new?Scanner(System.in);

System.out.println("請(qǐng)輸入你要找的數(shù)字");

int?num=sc.nextInt();

//調(diào)用searchArray()尋找num

int?index=searchArray(a,num);

System.out.println(index);

}

//二分法

public?static?int?searchArray(int[]a,int?num)

{

int?front?=?0;

int?end=a.length-1;

int?count?=0;

//判斷數(shù)組是否為空

if(a==null)

{

return?-1;

}

while(front<=end)

{

int?mid=(front+end)/2;

System.out.println("第"+(++count)+"次");

if(a[mid]==num)

{

return?mid;

}

else?if(a[mid]num)

{

end=mid-1;

}

}

return?-1;

}

}

遞歸實(shí)際就是實(shí)現(xiàn)了循環(huán)的作用!

二分法首先你要確定你所穿的數(shù)組不是空,并且使數(shù)組升序排列

//判斷數(shù)組是否為空

if(a==null)

{

return?-1;

}

第二限制循環(huán)的條件

保證front<=end,只有在這個(gè)前提下找的的位置才保證是在數(shù)組內(nèi)部尋找

然后再去判斷a[mid]是否等于num,若a[mid]num相同原理....

二分法是用front 和end來限制,讓a[mid]去比較。

while(front<=end)

{

int?mid=(front+end)/2;

System.out.println("第"+(++count)+"次");

if(a[mid]==num)

{

return?mid;

}

else?if(a[mid]num)

{

end=mid-1;

}

}

總結(jié)

以上是生活随笔為你收集整理的java实现二分法递归_Java递归实现二分法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。