29 折半查詢法的使用

2021-10-10 15:04:05 字數 866 閱讀 2236

//利用順序查詢,在無序的陣列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...