1. 程式人生 > >寫程式碼可以在整型有序陣列中查詢想要的數字

寫程式碼可以在整型有序陣列中查詢想要的數字

使用二分法查詢會大大提高效率,不需用遍歷陣列中每一個元素的值

  • 首先解釋二分法在這裡插入圖片描述
    假設要找的數字是5,從12個數中尋找,會先找12的一半6,判斷是大了,於是知道了要找的數字在左邊0——6之間,再取半得到3,是小了,於是在3—6之間再折半為4(為什麼是4,是因為三到六最中的數是4.5,但int型別會取整, 所以是4),於是在4——6之間,所以找到了這個數是5
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main(){
		int a;
		scanf
("%d", &a); int arr[] = { 5,6,45,55,77,88,99,100 }; int lenth = sizeof(arr) / sizeof(int); int left=0; int right=lenth; int mid; int compre; for (;;){ mid = (left + right) / 2; if (arr[mid] == a){ printf("是這個數:%d\n",mid); break; } else if (arr[mid] < a){ if (left ==
mid){ printf("沒這個數\n"); break; } left = mid; } else { if (right == mid){ printf("沒這個數\n"); break; } right = mid; } } system("pause"); return 0; }