折半查詢又稱為二分查詢,它的前提是線性表中的記錄必須是有序的(通常從小到大有序),線性表必須採用順序儲存.
折半查詢的基本思想是 : 在有序表中,取中間記錄作為比較物件,若給定值與中間記錄的關鍵字相等,則查詢成功;若給定值小於中間記錄的關鍵字,則在中間記錄的左半區繼續查詢;若給定值大於中間記錄的關鍵字,則在中間記錄的右半區繼續查詢.不斷重複上述過程,直到查詢成功 或所有查詢區域無記錄,查詢失敗.
1 #include 2 #include 34//折半查詢,又稱為二分查詢 ,條件保證要好排序的, 不適合應用在 頻繁的插入操作,因為會打亂順序
5int binary_search(int *a,int n,int
key)
6 else
if(key >a[mid]) else21}
22return -1; //
沒有找到返回-123}
2425
void
main()26;
2829
//需求要查詢8, 如果用傳統的方式 要查詢8次才能得出
30int
index;
31 index = binary_search(a, sizeof(a) / sizeof(int),8
);32
33if (index == -1
)34 printf("
沒有找到");
35else
36 printf("
找到了,index為:%d
",index);
37 }
折半查詢(C語言)
如果所有數字按照某種順序排列好就可以每次用中間位置的數字和要查詢的數字做對比,這樣一次可以排除一半的數字。不斷重複這個過程就可以很快找到目標數字的位置。折半查詢 include int half search const int p start,constint p end,int num else...
折半查詢(C語言)
題目 有15個資料由小到大順序存放在乙個陣列中,輸入乙個數,要求使用折半查詢法查詢該數是陣列中的第幾個元素 如果該數不存在,則輸出,沒有此數 有15個資料由小到大順序存放在乙個陣列中,輸入乙個數,要求使用折半查詢法查詢該數是陣列中的第幾個元素 如果該數不存在,則輸出,沒有此數 include def...
折半查詢 C語言
一 二分查詢 在c和c 裡,二分查詢是針對有序陣列所用的一種快速查詢元素的方法。二 二分查詢的條件以及優缺點 條件 針對有序陣列 元素從小到大或從大到小 優點 查詢速度較快,時間複雜度為o n 缺點 有硬性條件的限制,而且即使查到後,插入與刪除困難。三 詳解 四 define crt secure ...