zoukankan      html  css  js  c++  java
  • 计算机算法设计与分析 <王晓东编著> 算法实现题2-1 众数问题

    问题描述:

    给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。该多重集S的众数是2,其重数是3。

    算法设计:

    对于给定的由n个自然数组成的多重集S,计算S的众数及其重数。

    数据输入:

    输入数据由文件名为input.txt 的文本文件提供。文件的第1行为多重集S中的元素个数n;在接下来的n行中,每行有一个自然数。

    结果输出:

    将计算的结果输出到文件output.txt。输出文件有两行,第一行是众数,第二行是重数。

    输入文件示例 输出文件示例
    input.txt output.txt
    6 2
    1 3
    2  
    2  
    2  
    3  
    5  

    参考代码:

    #include <iostream>
    using namespace std;
    void Func(int i,int arr[], int aux[]){
        if(i==0) return;
        for(int j=i-1;j>=0;j--){
            if(arr[i]==arr[j]){
                aux[i] += aux[j];
                break;
            }
        }
    }
    int Maxindex(int aux[],int n){
        int index = 0;
        for(int i=0;i<n;i++){
            if(aux[index] < aux[i]) index = i;
        }
        return index;
    }
    int main() {
        int n;
        cin >> n;
        int arr[n],aux[n];
        for(int i = 0;i < n;i ++ ) {
            cin >> arr[i];
            aux[i] = 1;
        }
        for(int i=0;i<n;i++){
            Func(i,arr,aux);
        }
        int index = Maxindex(aux,n);
        cout<<arr[index]<<endl;
        cout<<aux[index]<<endl;
        return 0;
    }
  • 相关阅读:
    关于点击率模型,你知道这三点就够了
    【AI】Computing Machinery and Intelligence
    MATLAB 的函数句柄
    MATLAB 的unique函数——数组矩阵的唯一值
    MATLAB 的数据导入与导出
    MATLAB 的函数
    MATLAB 向量
    MATLAB 的break语句和continue语句
    MATLAB 的循环语句
    MATLAB 的条件分支语句
  • 原文地址:https://www.cnblogs.com/Andre/p/12635826.html
Copyright © 2011-2022 走看看