欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

包含二分查找java代碼6的詞條

求一個(gè)簡單的一維數(shù)組二分查找程序代碼Java

public class Test6 { //二分查找 public static int findPos(int[] a,int key) { int start=0; int end=a.length-1; int temp=0; while(startend){ int mid=(start+end)/2; if(keya[mid]){ start=mid+1; temp=start; }else if(keya[mid]){ end=mid-1; temp=end; }else { return mid; } } return temp; } public static void main(String[] args) { int[]array={1,4,6,7,10,11,23,78}; System.out.println(findPos(array, 0)); }}

10年積累的網(wǎng)站制作、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有特克斯免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

用Java語言編寫對整型數(shù)組進(jìn)行二分查找的程序。

public class BinarySearchDemo {

public static void main(String[] args) {

int[] a = new int[]{1,5,7,9,11,18,23,48,69};

int point = new BinarySearchDemo().binarySearch(a, 23);

if(point == -1)

System.out.println("在數(shù)組中未查找到數(shù)23");

else

System.out.println("數(shù)字23是數(shù)組中第 " + (point + 1) + " 位數(shù)");

}

/**

* 二分法查找一個(gè)整數(shù)在整型數(shù)組中的位置

*

* 算法思路:首先得到數(shù)組a的最小值和最大值的下標(biāo),分別是:low和high,接著求出值位于數(shù)組中間那個(gè)數(shù)的下標(biāo)middle

* 然后再將這個(gè)middle對應(yīng)的數(shù)組中的數(shù)和待查找的數(shù)num進(jìn)行比較,如果相等,則表示已查找到,如果num a[middle]

* 則說明num位于a[low]和a[middle]之間,于是將a[middle - 1]設(shè)為較大值,繼續(xù)求出此時(shí)對應(yīng)的a[middle],

* 再進(jìn)行比較,其他情況可依次類推。一直到low=high,如果此時(shí)還沒有在數(shù)組a中查找到,則說明該數(shù)組a中沒有值num,返回-1

*

* @param a 給定的整型數(shù)組

* @param num 待查找的數(shù) num

*

* @return 返回整數(shù)num在數(shù)組a中的位置下標(biāo),如果未查找到則返回-1

* */

public int binarySearch(int[] a,int num){

int low = 0;

int high = a.length - 1;

while(low = high){

int middle = (low + high) / 2;

if(num == a[middle])

return middle;

else if(num a[middle])

high = middle - 1;

else

low = middle + 1;

}

return -1;

}

}

程序基本上就是這樣了,其中注釋中有詳細(xì)的解釋說明

求一個(gè)java的二分查找的程序代碼

//你那程序太難改了,每個(gè)方法都單職責(zé)啊

public?class?Test6?{

//二分查找

public?static?int?findPos(int[]?a,int?key)?{

int?start=0;

int?end=a.length-1;

int?temp=0;

while(startend){

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

if(keya[mid]){

start=mid+1;

temp=start;

}else?if(keya[mid]){

end=mid-1;

temp=end;

}else?{

return?mid;

}

}

return?temp;

}

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

int[]array={1,4,6,7,10,11,23,78};

System.out.println(findPos(array,?0));

}

}

java二分查找

我大概看了一下,找出了你2個(gè)重要的缺點(diǎn).

第一,你用一個(gè)5個(gè)數(shù)的小數(shù)組挨個(gè)按你寫的算法算一下,你會發(fā)現(xiàn)很多地方是a.length-1而非a.length,有的地方是==,而不是.

其中還有2個(gè)小地方.

if(counta.length/2) break;

可以寫成while(reader.hasNextInt()counta.length/2).

3.else if(na[middle]) 可以寫成 else.

第二,是最重要的問題.算法上面.

試想一下如果只有2個(gè)數(shù).start是0,end是1,給出的數(shù)是a,用你的if(na[middle]) start=middle;0.5取0,永遠(yuǎn)start,middle都是0.如果你說因此你用a.length而不是減1,那a就永遠(yuǎn)也取不到。

怎么解決,加一個(gè)如果middle=(start+end)/2后等于start且不為0的話,start取end.

本文標(biāo)題:包含二分查找java代碼6的詞條
標(biāo)題鏈接:http://aaarwkj.com/article30/docpeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、云服務(wù)器、網(wǎng)站改版、網(wǎng)站制作、用戶體驗(yàn)、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
日本精品在线不卡视频| 美女床上激情啪啪网页| 国产成人亚洲精品专区高清| 欧美日韩亚洲中文字幕| 69人妻一区二区三区蜜桃| 97视频在线观看观看| 九九有点热以前的视频| 欧美人与性一区二区三区| 中文欧美一区二区精品| 日韩经典三级精品自拍| 欧美一区二区欧美精品| 成人久久精品一区二区| 少妇高潮视频在线观看| 午夜性色在线视频福利| 不卡免费av在线高清| 日本加勒比一本在线观看| 射精视频在线观看免费| 麻豆午夜视频免费在线观看| 久久精品视频就在久久| 欧美黄色一区二区三区视频| 日本在线一区二区三区| 欧美日韩在线不卡成人| av成人黄色片在线播放| 亚洲欧美日本国产一区| 亚洲天堂av在线有码| 日韩一二三四区免费观看| 欧美av一区二区三区四区| 国产精品国产三级国产不卡| 欧美福利免费在线视频| 少妇高潮一区二区三区99| 97国产精品成人免费视频| 欧美日韩国产天天干| 国产青青草成人在线视频| 国产一级内射视频免费观看| 欧美亚洲国产另类第一页| 亚州国产成人综合精品| 欧美黄色一区二区三区精品 | 中文字幕在线不卡精品视频| 国产成人免费自拍一区| 亚洲一级香蕉视频东京热| 午夜性色福利在线播放|