四级456de我 2022-02-26 09:46 采纳率: 100%
浏览 42
已结题

给定三个整数 a,b,c 写出寻找其中数的算法,并分析平均和最坏情况下要作多少次比较?

给定三个整数 a,b,c 写出寻找其中数的算法,并分析平均和最坏情况下要作多少次比较?

  • 写回答

3条回答 默认 最新

  • 关注

    由于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;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 已采纳回答 2月27日
  • 创建了问题 2月26日

悬赏问题

  • ¥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 库的使用