物理选修3 2经典例题2怎么做

C语言中的2分法是什么意思 如何弄 例如这题 - C语言当前位置:& &&&C语言中的2分法是什么意思 如何弄 例如这题C语言中的2分法是什么意思 如何弄 例如这题&&网友分享于:&&浏览:1次C语言中的2分法是什么意思 怎么弄 例如这题(4) 将20个数存放在一个数组中,首先使用选择法对这20个数按升序排列,并输出排序后的结果;然后从键盘输入一个数,要求用二分查找的方法找出该数在数组中的位置(即下标),如果该数不在数组中,则输出“无此数”。
提示:首先利用一个二重循环实现选择排序;然后使用单重循环来实现二分查找。
测试实例:
输入: 100&10&-125&-9&0&90&70&60&300&-250&-72&39&48&22&83&159&142&-129&-24&539
输出:-250&-129&-125&-72&-24&-9&0&10&22&39&48&60&70&83&90&100&142&159&300&539
输入: -129
输入: 301
输出: 无此数------解决思路----------------------不知道楼主还记不记得,高中时候&的二分法求解方程近似解.------解决思路----------------------For&reference&only
#include&stdio.h&
/*选择排序*/
void&select_sort(int&*arry,&int&len)
&&&&int&i,j,
&&&&for(i&=&0;&i&&&&++i)
&&&&&&&&for(j&=&i+1;&j&&&&++j)
&&&&&&&&&&&&if(&arry[j]&&&arry[i])
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&tmp&=&arry[i];
&&&&&&&&&&&&&&&&arry[i]&=&arry[j];
&&&&&&&&&&&&&&&&arry[j]&=&
&&&&&&&&&&&&}
/*二分查找*/
int&binary_search(int&*arry,&int&len,&int&key)
&&&&int&low&=&0,high&=&len&-&1&;
&&&&int&mid&=&(low&+&high)&/&2;
&&&&while(low&&&high)
&&&&&&&&if(arry[mid]&==&key)
&&&&&&&&&&&&return&
&&&&&&&&else&if(arry[mid]&&&key)
&&&&&&&&&&&&low&=&mid&+&1&;
&&&&&&&&&&&&mid&=&(low&+&high)&/&2;
&&&&&&&&else&
&&&&&&&&&&&&high&=&mid&-&1;
&&&&&&&&&&&&mid&=&(low&+&high)&/&2;
&&&&/*数组中没有key*/
&&&&return&-1;
int&main()
&&&&int&test[20];
&&&&int&i;
&&&&printf("输入:");
&&&&for(i&=&0;&i&&&20;&++i)
&&&&&&&&scanf("%d",&test[i]);
&&&&/*选择排序*/
&&&&select_sort(test,20);
&&&&printf("输出:");
&&&&for(i&=&0;&i&&&20;&++i)
&&&&&&&&printf("%d&",test[i]);
&&&&while(1)
&&&&&&&&char&
&&&&&&&&int&n;
&&&&&&&&int&
&&&&&&&&printf("输入:");
&&&&&&&&scanf("%d",&key);
&&&&&&&&n&=&binary_search(test,20,key);
&&&&&&&&if(n&&=&0)
&&&&&&&&&&&&printf("输出:%d\n",n);
&&&&&&&&&&&&
&&&&&&&&else
&&&&&&&&&&&&printf("输出:&无此数\n");
------解决思路----------------------思路如下:
排序后,因为升序排列,所以元素值大的对应的下标大,即下标从0~19,而元素值也依次增大,可以先选取【0】跟【19】对应的元素值,Avr&=&(a[0]+a[19])/2,如果当前要比较的数值Cur_data&&&Avr,那么说明Cur_data在下标【0】~【19】之间,因此,继续比较,取【0】跟【10】,如果Avr&&&(a[0]&+&a[10])/2&,说明Avr在这个区间之内....依此下去,就会找到Cur_data对应的位置------解决思路----------------------
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有_如何做几何证明题(含答案)2_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
_如何做几何证明题(含答案)2
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
第4题的第2小题怎么做&
扫二维码下载作业帮
1.75亿学生的选择
2的99次方 分之一第一个数:1二:2的一次方分之一(二分之一)三:2的二次方分之一(四分之一)四:2的三次方分之一(八分之一)
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 数学归纳法典型例题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信