• 欢迎光临~

写一个代码,在arr数组中找到7 分别用循环法和二分法

开发技术 开发技术 2022-07-27 次浏览

循环法写一个代码,在arr数组中找到7    分别用循环法和二分法

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
 6     int k = 6,num,i;
 7     num = sizeof(arr) / sizeof(arr[0]);
 8     for (i = 0; i < num; i++)
 9     {
10         if (arr[i] == 7)
11         {
12             printf("找到了下标=%d", i);
13             break;
14         }
15     }
16     if (i == num)
17         printf("找不到7");
18 }

二分法

 1 #define _CRT_SECURE_NO_WARNINGS 1
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
 6     int left = 0, right, sum, mid;
 7     sum = sizeof(arr) / sizeof(arr[0]);
 8     right = sum - 1;
 9     while (left <= right)
10     {
11         mid = (left + right) / 2;
12         if (arr[mid] == 7)
13         {
14             printf("找到了7下标为%d", mid);
15             break;
16         }
17         else if (arr[mid] < 7)
18             left = mid + 1;
19         else
20             right = mid - 1;
21     }
22     if (left > right)
23         printf("找不到7");
24     return 0;
25 }

 

喜欢 (0)