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()
/* 你的**將被嵌在這裡 */
5
12 31 55 89 101
31
2
3
26 78 233
31
0
題解:
position binarysearch( list l, elementtype x )
if (l->data[(right+lift)/2] < x)
if (l->data[(right+lift)/2] == x)
}return notfound;
}
01 複雜度3 二分查詢
本題要求實現二分查詢演算法。position binarysearch list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用者傳入的乙個線性表,其中elem...
01 複雜度3 二分查詢
思路還是很簡單的,就是 左傾 還是 右傾 的問題。需要注意的細節就是 當要查詢的值在 頭和尾的情況。解決辦法就是在 while 語句的條件的中取 還是 這個需要思考一哈,哈哈哈。附上我的兩個 第乙個是我初學,第二個是我學了兩個月後。二分法的本質就是不停縮小範圍,因為是順序的序列,於是靠找端點縮小範圍...
01 複雜度3 二分查詢
本題要求實現二分查詢演算法。函式介面定義 position binarysearch list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用者傳入的乙個線性表...