4 10 二分查詢

2022-03-06 03:54:29 字數 1389 閱讀 5998

4-10 二分查詢

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

position binarysearch( list tbl, elementtype k );
其中list結構定義如下:

typedef int position;

typedef struct lnode *list;

struct lnode ;

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

5

12 31 55 89 101

31

2
3

26 78 233

31

0

**:

1 #include2 #include3 #include4 #include

5using

namespace

std;

6#define maxsize 10

7#define notfound 0

8 typedef int

elementtype;

910 typedef int

position;

11 typedef struct lnode *list;

12struct

lnode ;

1617 list readinput(); /*

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

*/18

position binarysearch( list tbl, elementtype k );

1920

intmain()

2132

list readinput()

3343

return

l;44}45

46int

binarysearch( list tbl, elementtype k)

4758

else

if(kdata[mid])

5962

else65}

66}67return

notfound;

68 }

迭代二分查詢二分查詢

在寫這篇文章之前,已經寫過了幾篇關於改迭代二分查詢主題的文章,想要了解的朋友可以去翻一下之前的文章 bentley在他的著作 writing correct programs 中寫道,90 的計算機專家不能在2小時內寫出完整確正的二分搜尋演算法。難怪有人說,二分查詢道理單簡,甚至小學生都能明確。不過...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...

二分查詢及變種二分查詢

二分查詢也稱折半查詢 binary search 它的查詢效率很好。二分查詢有乙個要求是必須採用順序儲存結構,而且表種的元素是有序的。只有滿足這個條件我們才能使用二分查詢。查詢條件 查詢區域的左邊界,小於等於查詢區域的右邊界 查詢過程 1.迴圈條件 查詢條件 2.計算序列中間下標位置 3.如果待查詢...