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

包含二分查找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è)
久久婷亚洲综合五月天| 欧美亚洲一区二区三区精品| av在线免费观看青青草原| 天堂av一区二区在线播放| 岛国av在线免费观看| 国产亚洲欧美久久精品| 日韩人妻熟妇中文字幕| 亚洲香蕉av一区二区蜜桃| 亚洲女同中文字幕在线| 永久免费看黄在线观看| 日韩精品一区二区三区夜色| 国产精品一区二区欧美激情| 国产精品极品网站91青青| 国产欧美日本一区二区| 亚洲一区制服无码中文| 国产原创av剧情愿望成真| 亚洲伦理国产一国产二| 国产91对白在线观看| 男女视频一区二区三区在线观看| 免费观看中国性生活片| 精品国产91久久粉嫩| 狼人私人影院在线观看| 在线视频网友自拍偷拍| 97精品久久九九中文字幕| 国产黄片一区二区在线| 夜夜嗨精品免费视频播放| 亚洲综合av一区二区| 久久精品二区亚洲w码| 日韩在线免费色视频| 日本一区二区三区免费不卡视频| 日韩一区二区三区av在线| 成人18禁h黄在线看免费| 欧美黄片在线播放视频| 国产粉嫩一区二区三区在线观看 | 亚洲欧美综合精品久久成人| 九九六热这里只有精品| 日韩中字伦理熟妇人妻| 久热99在线视频免费观看| 国产一级内射在线视频| 国产精品三级玖玖玖电影| 亚洲欧美日韩国产精品专区|