說一下折半查詢函式,要在乙個陣列裡面找乙個數,前提是這個陣列是有序的(這兒我們認為是遞增的哈),我們首先把陣列分成兩半,我們把中間的那個數字和要查詢的資料x比較,如果x大於中間的數,那麼我們就在右邊找,有把右邊當成乙個新的遞增陣列,再把這個新陣列分成兩半,以此類推,這就叫折半查詢,直到找到資料x為止,如果陣列不存在x,就返回-1
然而,題目要我們設計成迴圈結構,照上面說的思路,差不多就是迴圈結構了吧,聰明機智的你看出來了嗎
/*二分折半查詢法,成功返回資料在陣列的下標值,否則返回-1*/
intbsearch
(int arr,
int x,
int low,
int height)
return-1
;//沒有查詢到,返回-1
}int
main()
正常查詢
正常查詢
資料不再陣列內
**編譯器:visual studio 2017
ok
函式,結構體,折半查詢
遞迴函式 int remul int num else 這就是乙個結構體 這只是乙個型別 struct point 矩形 struct rect struct student 給資料型別起名字.typedef int age typedef float num1 typedef double num...
提高迴圈的效率 折半查詢演算法
通過最近的看書學習,獲益匪淺。下面介紹一種折半查詢演算法 比如我買了一雙鞋,你好奇問我多少錢,我說不超過300,然後讓你猜,那麼你一定每次猜中間數。舉個例子,若實現在主函式內,一有序陣列中尋找7在哪 那麼就不用一一查詢,直接用這種演算法,最多隻計算4次。include int main int le...
資料結構 查詢 折半查詢
簡單介紹下折半查詢,折半查詢僅適用於有序的順序表。查詢成功的平均查詢長度為log2 n 1 1 折半查詢判定樹的樹高為log2 n 1 向上取整 下面投放折半查詢 include include define maxsize 50 define keytype int 順序表結構體 typedef ...