1. 程式人生 > 其它 >運用函式的方法實現二分查詢法

運用函式的方法實現二分查詢法

技術標籤:c語言

二分查詢

要求:

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

程式碼:

             //本質上形參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.如何將數列作為實參傳遞給函式,函式的形參又是如何接收實參。