zoukankan      html  css  js  c++  java
  • 主元素判断

    有一个数组r,里面是n个随机排列整数,找到里面的众数,如果该众数的重数大于n/2,则该数为这个数组的主元素

    如果按照众数的计算方法,需要先给数组排序。然后再遍历每个元素,得到众数和重数,再来判断重数与n/2的关系。以下为排完序之后找众数的算法。

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <cmath>
     6 #include <stack>
     7 #include <map>
     8 #include <queue>
     9 
    10 using namespace std;
    11 
    12 int main()
    13 {
    14     int n, num, my_max = -0x3f3f3f3f, a, b, temp = 1;
    15     scanf("%d", &n);
    16     scanf("%d",  &a);
    17     for(int i = 1; i < n; ++ i)
    18     {
    19         scanf("%d", &b);
    20         if(a == b) temp ++;
    21         else
    22         {
    23             temp = 1;
    24             a = b;
    25         }
    26         if(temp >= my_max)
    27         {
    28             my_max = temp;
    29             num = b;
    30         }
    31     }
    32     printf("%d
    %d
    ", num, my_max);
    33     return 0;
    34 }

    解法二:依次扫描所给数组的每个整数,将第一个遇到的整数N保存到C中,记录N出现的次数为1;若遇到下一个整数任为N,则计数加1,否则,计数减1;计数为0时,将下次遇到的数保存到C,计数重新记为1,开始新一轮的计数;直到数组的数扫描完为止。C即为众数。重新扫描C在数组中出现的次数,判断是否满足要求。

  • 相关阅读:
    LRU算法简介
    linux下安装nginx+php+mysql环境 详细教程
    CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3
    unicode 格式 转汉字
    js 操作cookie
    哈希函数
    php商城秒杀活动
    php 栈、 出栈、入栈
    php单例模式
    封装PHP增删改查方法
  • 原文地址:https://www.cnblogs.com/zyqx/p/9342629.html
Copyright © 2011-2022 走看看