//利用順序查詢,在無序的陣列arr中,查詢key,找到返回下標,失敗返回-1
intsearch
(int
*arr,
int len,
int key)
}return-1
;}//利用折半查詢,在有序(公升序)的陣列arr中,查詢key,找到返回下標,失敗返回-1
intbinsearch1
(int
*arr,
int len,
int key)
//錯誤,存在bug,存在low=high=key
else
if(arr[mid]
< key)
//在右邊
else
}return-1
;}//錯誤執行,輸出結果為;-1.-1.0.1.2.3.4.5.6.7.8.9.10
intbinsearch
(int
*arr,
int len,
int key)
//正確的寫法
else
if(arr[mid]
< key)
//在右邊
else
}return-1
;}intmain()
;/*for(int i=-1;i<15;i++)
*/for
(int i=-1
;i<
15;i++
)return0;
}
24,折半查詢
include 折半查詢 二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用...
6 2 2 折半查詢
折半查詢,又稱二分查詢,它適用於有序的順序表。基本思路是 首先將給定值key與表中中間位置元素的關鍵字比較,若相等,則查詢成功,返回該元素的儲存位置 若不等,則所需查詢的元素只能在中間元素以外的前半部分或後半部分中 例如,在查詢表公升序排列時,若給定值key大於中間元素的關鍵字,則所查詢的元素只可能...
6 13 折半查詢
給乙個嚴格遞增數列,函式int search bin sstable t,keytype k 用來二分地查詢k在數列中的位置。函式介面定義 int search bin sstable t,keytype k 其中t是有序表,k是查詢的值。裁判測試程式樣例 include using namespa...