ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-07-28 01:00:49  阅读:142  来源: 互联网

标签:arr right 循环法 int 二分法 num printf sizeof


循环法

 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 }

 

标签:arr,right,循环法,int,二分法,num,printf,sizeof
来源: https://www.cnblogs.com/woheta804983513/p/16527092.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有