java實現折半查詢 二分查詢 的遞迴和非遞迴演算法

2021-06-13 23:22:01 字數 1195 閱讀 6843

原始出處 、作者資訊和本宣告。否則將追究法律責任。

/***名稱:binarysearch

*功能:實現了折半查詢(二分查詢)的遞迴和非遞迴演算法.

*說明:

*     1、要求所查詢的陣列已有序,並且其中元素已實現comparable介面,如integer、string等.

*    2、非遞迴查詢使用search();,遞迴查詢使用searchrecursively();

**本程式僅供程式設計學習參考

**@author:   winty

*@date:     2008-8-11

*@email:    [email protected]

*/class binarysearchextends comparable>

public

int search(t key)

else

if(key.compareto(data[mid]) > 0)

else

if(key.compareto(data[mid]) == 0)

}return -1;

}private

int dosearchrecursively(

int low , 

int high , t key)

else

if(result > 0)

else

if(result == 0)

}return -1;

}public

int searchrecursively(t key)

public

static

void main(string args);

binarysearchbinsearch = 

new binarysearch(data);

"key index:" + binsearch.search(33) );

system.out.println(

"key index:" + binsearch.searchrecursively(3) );

//string datastr = ;

//binarysearchbinsearch = new binarysearch(datastr);

"key index:" + binsearch.search("a") );

}

}

二分查詢(折半查詢)

二分查詢 折半查詢 從有序序列中找到給出的要查詢的數字。原理是 首先把乙個有序序列中間位置的值與要查詢的數比較,若相等則找到了有序序列中的此數 否則比較兩者的大小,若前者大,則把有序序列的中間位置以前的元素都去掉,餘下的元素組成乙個新的有序數列繼續上一步的操作,直到找到為止 若後者大,則把有序數列中...

折半查詢(二分查詢)

折半查詢 又稱二分查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有 序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前...

二分查詢(折半查詢)

時間限制 3000 ms 記憶體限制 65535 kb難度 3描述 在某一國度裡流行著一種遊戲。遊戲規則為 在一堆球中,每個球上都有乙個整數編號i 0 i 100000000 編號可重複,現在說乙個隨機整數k 0 k 100000100 判斷編號為k的球是否在這堆球中 存在為 yes 否則為 no ...