定義:對使用者輸入的數是否在已經按順序定義好的一組數上進行查詢
思想:定義好的一組數必須按順序排序,一般從小到大排序;
將一組數分為兩個部分;low指第乙個數,mid指中間乙個數,high指第最後乙個數;
把查詢數n與mid比較;如果n>mid,說明在mid右側,low的位置發生改變,除去當時low本身,則 low = mid+1;如果n
/*查詢使用者輸入的數n,找到了輸出n和其值下標,沒找到輸出n*/
#include
void
main()
;int low,mid,high;
int n;
//查詢的數
int flag =0;
//標誌變數
low =0;
high =10-
1;printf
("輸入讓查詢的數字");
scanf
("%d"
,&n)
;while
(low<=high)
else
if(n>a[mid]
)else}if
(flag==1)
else
}
c語言 二分查詢(折半查詢)
a 你的新鞋子好炫酷,多少錢買的呀?b 在100 300之間,你猜一下咯,每次我只告訴你猜大了還是猜小了,直到你猜對為止,看看你能不能很快猜出來。a 小夥伴在生活中有沒有和好朋友玩過類似的遊戲呢,不知道接下來你會選擇何種方式去猜呢?如果從100開始乙個乙個往後試,就顯得稍稍有點無腦了,每次猜測的時候...
C語言 折半查詢(二分查詢)演算法
什麼是折半查詢 當我們在一堆有序陣列中間查詢乙個數的時候,先將中間的數與查詢數進行比較。如果中間數大於我們要查詢的數,則在中間左半邊進行查詢 同樣的,如果中間數小於我們要查詢的數,則在中間往右半邊再次進行查詢。重複以上的過程,直到滿足,如果不滿足,則查詢失敗。條件 元素必須按照大小有序排列。那我們實...
二分查詢(折半查詢)
二分查詢 折半查詢 從有序序列中找到給出的要查詢的數字。原理是 首先把乙個有序序列中間位置的值與要查詢的數比較,若相等則找到了有序序列中的此數 否則比較兩者的大小,若前者大,則把有序序列的中間位置以前的元素都去掉,餘下的元素組成乙個新的有序數列繼續上一步的操作,直到找到為止 若後者大,則把有序數列中...