什麼叫折半?就是用已知的數與乙個有序數列序列號最中間的數相比較,縮小查詢範圍。
先寫查詢函式binsearch,三次判斷。然後主函式呼叫。
#includeint binsearch(int a,int x,int len)
if(x < a [mid]) //x < a [mid]時,右邊界變為中間下標-1
if(x > a[mid]) //x > a [mid]時,左邊界變為中間下標+1
} return -1; //如果查不到返回-1
}int main()
; int ret = 0;
ret = binsearch(a,6,sizeof(a)/sizeof(a[0])); //計算陣列長度
printf("%d\n",ret);
return 0;
}
利用C語言實現折半查詢
折半查詢,顧名思義,就是一組有順序的數,按照比較大小的方法找出某乙個數,類似二分法 如下 include includevoid find int arr1,int key,int right else if key arr1 mid left mid 1 else right mid 1 if l...
折半查詢(一) C語言實現
折半查詢也稱為二分查詢,該方法是將給定值與中間位置記錄的關鍵碼比較。若相等,則查詢成功 若不相等,則縮小範圍,直至新的查詢區間中間位置記錄的關鍵字碼等於給定值或者查詢區間沒有元素時 表明查詢不成功 為止。includeint binarysearch int a,int n,int index el...
c語言實現折半查詢演算法(二分查詢)
實驗課上乙個題目題目要求使用折半查詢演算法查詢資料,結果一番折騰也沒能夠實現。下來查了一些資料,第一次寫部落格就實現一下這個未完成的演算法。折半查詢要求資料序列呈現線性結構,也就是經過排序的,假設資料已排序。演算法的操作步驟 首先需要設3個變數lownum,midnum,highnum,分別儲存陣列...