日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/20 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现二分法递归_Java递归实现二分法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*

遞歸實現二分法的進化

*/

import?java.util.Scanner;

public?class?RecursionNext2{

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

{

//接收一個要尋找的數

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

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);

}

//遞歸實現二分法

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("請輸入你要找的數字");

int?num=sc.nextInt();

//調用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;

//判斷數組是否為空

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;

}

}

遞歸實際就是實現了循環的作用!

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

//判斷數組是否為空

if(a==null)

{

return?-1;

}

第二限制循環的條件

保證front<=end,只有在這個前提下找的的位置才保證是在數組內部尋找

然后再去判斷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;

}

}

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。