给定三个整数 a,b,c 写出寻找其中数的算法,并分析平均和最坏情况下要作多少次比较?
3条回答 默认 最新
- CSDN专家-深度学习进阶 2022-02-26 09:53关注
由于A,B,C中每一个为中数的概率均为⅓;
当A为中数时,需要比较2次。
当B或C为中数时,则需要比较3次;
由此可知,平均情况下需要比较的次数为:2⅓+3⅓+3*⅓=8/3次,最坏的情况下则需要比较3次。#include <iostream> #inlcude "stdlib.h" using namespace std; int mid(int a,int b,int c) { int m; m = a; //先假设中数为m if (m >= b) { if (m >= c) { if (b >= c) m = b; //中数为b else m = c; //中数为c } } else { if(m<=c) { if (b >= c) m = c; //中数为c else m = b; //中数为b } } return (m); } int main() { int a, b, c; cout << "please input a,b,c=\t"; cin >> a >> b >> c; cout << "所求的中数为:" << mid(a, b,c) << endl; system("pause"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用