zoukankan      html  css  js  c++  java
  • 同时找出最大数和最小数

     1 #include<iostream>
     2 #include<ctime>
     3 using namespace std;
     4 
     5 int Min(int a, int b)
     6 {
     7     if (a < b)
     8         return a;
     9     else
    10         return b;
    11 }
    12 
    13 int Max(int a, int b)
    14 {
    15     if (a > b)
    16         return a;
    17     else return b;
    18 }
    19 
    20 void Maximum_minimum(int a[], int n, int &max, int &min)
    21 {
    22     if (n == 1)
    23         max = min = a[1];
    24     else
    25     {
    26         int k;
    27         min = Min(a[1], a[2]);
    28         max = Max(a[1], a[2]);
    29         for (k = 2; k <= n / 2; k++)
    30         {
    31             if (a[2 * k - 1] < a[2 * k])
    32             {
    33                 min = Min(a[2 * k - 1], min);
    34                 max = Max(a[2 * k], max);
    35             }
    36             else
    37             {
    38                 min = Min(a[2 * k], min);
    39                 max = Max(a[2 * k - 1], max);
    40             }
    41         }
    42         if (2 * k < n)
    43         {
    44             min = Min(a[n], min);
    45             max = Max(a[n], max);
    46         }
    47     }
    48 
    49 }
    50 
    51 
    52 
    53 void main()
    54 {
    55     int max, min;
    56     srand(time(0));
    57     int a[11];
    58     for (int i = 1; i < 11; i++)
    59         a[i] = rand() % 100 + 1;
    60     Maximum_minimum(a, 10, max, min);
    61     for (int i = 1; i < 11; i++)
    62         cout << a[i] << endl;
    63     cout << "Max=" << max<<endl;
    64     cout << "Min=" << min;
    65 }

    这个算法的计算次数:

    1.当n是偶数,一共是n/2组,每组进行3次比较,但第一组只要一次比较,所以一共需要(3n-4)/2次比较;

    2.当n是奇数,一共是(n+1)/2组,每组进行3次比较,但第一组是1次而最好一组是2次,所以一共需要(3n-3)/2次比较。

    可以证明这个算法是最优的,证明可在其他书中找到

  • 相关阅读:
    ESP32学习目录
    python中mysql管理模块mysql-connector使用
    MYSQL基础知识和操作
    urlib补充
    Python3中Urllib库是什么?urllib模块基本使用
    递归:斐波契那数列
    python正则模块一
    模块&包
    XML模块示例代码
    使用python操作XML增删改查
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6489091.html
Copyright © 2011-2022 走看看