習題1 8 二分查詢 20分

2021-10-08 07:01:54 字數 565 閱讀 5202

習題1.8 二分查詢 (20分)

思路分析:核心是在已經排序好的數列中找到中位數,然後把要找的數和中位數比較,然後收縮左右邊界,最後找到那個數字。

注意要判斷這個數是否在這個線性表中,找不到就返回 notfound

函式介面:

/*#define maxsize 10000

typedef int position;

typedef struct lnode

*list;*/

//元素從下標 1 開始儲存

//方法一:(採用遞迴)

position bs

(list l, elementtype x, position left,position right)

position binarysearch

(list l, elementtype x)

//方法二:(採用非遞迴)

position binarysearch

(list l, elementtype x)

return notfound;

}

習題1 8 二分查詢 20分

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

習題1 8 二分查詢 20分

本題要求實現二分查詢演算法。position binarysearch list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用者傳入的乙個線性表,其中elem...

1 8 二分查詢 (20 分)

本題要求實現二分查詢演算法。position binarysearch list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用者傳入的乙個線性表,其中elem...