C語言折半查詢(二分查詢)

2021-10-05 04:23:05 字數 608 閱讀 7188

定義:對使用者輸入的數是否在已經按順序定義好的一組數上進行查詢

思想:定義好的一組數必須按順序排序,一般從小到大排序;

將一組數分為兩個部分;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語言 折半查詢(二分查詢)演算法

什麼是折半查詢 當我們在一堆有序陣列中間查詢乙個數的時候,先將中間的數與查詢數進行比較。如果中間數大於我們要查詢的數,則在中間左半邊進行查詢 同樣的,如果中間數小於我們要查詢的數,則在中間往右半邊再次進行查詢。重複以上的過程,直到滿足,如果不滿足,則查詢失敗。條件 元素必須按照大小有序排列。那我們實...

二分查詢(折半查詢)

二分查詢 折半查詢 從有序序列中找到給出的要查詢的數字。原理是 首先把乙個有序序列中間位置的值與要查詢的數比較,若相等則找到了有序序列中的此數 否則比較兩者的大小,若前者大,則把有序序列的中間位置以前的元素都去掉,餘下的元素組成乙個新的有序數列繼續上一步的操作,直到找到為止 若後者大,則把有序數列中...