基礎程式設計 二分查詢

2021-10-05 07:41:40 字數 1415 閱讀 5257

題目要求:

本題要求實現二分查詢演算法。

函式介面定義:
position binarysearch

( list l, elementtype x )

;

其中list結構定義如下:

typedef

int position;

typedef

struct lnode *list;

struct lnode

;

l是使用者傳入的乙個線性表,其中elementtype元素可以通過》、==、《進行比較,並且題目保證傳入的資料是遞增有序的。函式binarysearch要查詢x在data中的位置,即陣列下標(注意:元素從下標1開始儲存)。找到則返回下標,否則返回乙個特殊的失敗標記notfound。

裁判測試程式樣例:
#include

#include

#define maxsize 10

#define notfound 0

typedef

int elementtype;

typedef

int position;

typedef

struct lnode *list;

struct lnode

;list readinput()

;/* 裁判實現,細節不表。元素從下標1開始儲存 */

position binarysearch

( list l, elementtype x )

;int

main()

/* 你的**將被嵌在這裡 */

輸入樣例1:
5

12 31 55 89 101

31

輸出樣例1:
輸入樣例2:
3

26 78 233

31

輸出樣例2:
函式程式:
position binarysearch

(list l, elementtype x)

else

if(l -> data[center]

< x)

head = center +1;

else

if(l -> data[center]

> x)

tail = center -1;

}if(result ==0)

return notfound;

return result;

}

演算法基礎 二分查詢

二分查詢主要是為了解決 在一堆數中找出指定的數 這類問題。要想二分查詢,這一堆數必須有以下特徵 至於是順序遞增還是遞減,是否存在相同的元素都不要緊。include include using namespace std int binarysearch int array,int low,int h...

二分查詢 基礎演算法

今天有童鞋問到我二分的題,一時間竟然忘了二分怎麼敲了。就特麼你這記性還是別搞acm了 二分的思想 在乙個公升序的序列中查詢乙個元素,普通的想法是直接從頭擼到尾然後判斷,但是當資料很多的時候這中普通的思想絕壁會超時 不過不要小看這種普通的從頭到尾去遍歷的思想,有的時候,它很暴力 二分不同,它是每次去把...

JAVA基礎(二分查詢)

1,陣列高階二分查詢原理 畫圖演示 二分查詢 注意事項 2,陣列高階二分查詢 public class demo2 array system.out.println getindex arr,22 system.out.println getindex arr,66 system.out.print...