運用函數的方法實現二分查找法

二分查找

鍵盤輸入一個有序數組和你想要尋找的值,建立一個二分查找函數去找尋你所要尋找的值的所對應的下標

         //本質上形參a是一個指針,接收並指向傳過來的數組的第一個元素的地址              

void judgement(int a[],int b,int sz)
{
int left = 0;
int right = sz-1;
while (left <= right)
{
int mid = (left + right) / 2;
if (a[mid] > b)
{
right = mid - 1;
}
else if (a[mid] < b)
{
left = mid + 1;
}
else
{
printf("%d ",mid);
printf("找到了\n");
break;
}
}
if (left > right)
{
printf("沒找到\n");
}
}
int main()
{
int arr[10];
int k = 0;
int i = 0;
int j = 0;
int sz = 0;
//對數組進行鍵盤輸入值時要一個一個輸入,運用for循環
for (i; i < 10; i++)
{
scanf("%d", &arr[i]);
}
printf("數組爲:");
for (j; j < 10; j++)
{
printf("%2d", arr[j]);
}
printf("\n輸入你所要查詢的數字爲:");
scanf("%3d", &k);
sz = sizeof(arr) / sizeof(arr[0]);
printf("數組長度爲:%d", sz);
printf("\n查詢結果爲:");















































此處的傳遞的實參arr是指向數組的第一個元素的地址

judgement(arr,k,sz);
return 0;

}

總結:

對於自己來講,學習到了以下幾點:
1.如何實現鍵盤輸入一個有序數列;
2.如何將數列作爲實參傳遞給函數,函數的形參又是如何接收實參。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章