24,折半查詢

2021-07-07 08:22:26 字數 983 閱讀 6732

#include /*

折半查詢:

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。*/

int findkey(int nums,int length,int key);

int findkey1(int nums,int length,int key);

int main(int argc,const

char * argv) ;

int length = sizeof(nums) /sizeof(nums[0]);

int key = 7;

//    int index = findkey(nums, length, key);

int index = findkey1(nums, length, key);

printf

("index = %i\n",index);

return0;}

//這種效率上比較差一點點

int findkey(int nums,int length,int key)else

if(key < nums[mid])

if (min > max)

mid = (min + max) / 2;

}return mid;

}//這種效率比較好

int findkey1(int nums,int length,int key)else

if(key max = mid - 1;

}else

}return -1;

}

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...

2020 11 15折半查詢

折半查詢 陣列的查詢功能 在乙個陣列中,找乙個元素,是否存在於陣列中,如果存在,就返回索引 普通查詢 找到元素在陣列 現的索引,如果沒有這個 元素,結果就是負數 public class arraymethodtest 3 int index binarysearch arr,10 system.o...