Define:
算法
從某種意義上講就是執行一次把所剩下的下標(開頭和結尾)/2得一箇中間量,而後進行比較找到本身想要找到的數。這樣的算法會讓執行過程簡潔N倍。 數組
寫在前面: 我也只是個小白在博客上不斷地鍛鍊本身,但願獲得你們的喜歡,有什麼問題咱們共同交流,進步。ide
接下來咱們舉一個簡單例子來代表個人思想。但願讀者可以理解代碼意思!!!!!!!spa
#include <stdio.h> #include <string.h> #include <Windows.h> #include <stdlib.h> int main() { int a,sz,left,right,mid; int num[]={1,2,3,4,5,6,7,8,9,10}; printf ("Please enter a number:\n"); scanf ("%d",&a); sz=sizeof(num)/sizeof(num[0])-1; //計算數組個數 left=0; //定義數組開始和結尾下標值 right=sz-1; while (left<=right) //循環體循環,須要讀者本身去領悟 { mid=(left+right)/2; if(num[mid]>a) { right=mid-1; } else if(num[mid]<a) { left=mid+1; } else { printf ("找到了,下標爲:%d",mid); break; } } if(left>right) { printf ("很差意思沒有找到\n"); } return 0; }