👤

Fie a un vector cu (n<=50) componente de tip int. Determinati un element din vector care se repeta de cele mai multe ori.
Programul pe care l-am scris il inserez mai jos.
1) Este vreo metoda mai eficienta?
2) Este vreo metoda eficienta pentru a nu verifica valorile care s-au verificat anterior?
(de ex ptu {5, 6, 1, 7, 5, 1, 90, 5, 8} 5 se va verifica de 3 ori) eliminarea tuturor valorilor care s-au verificat si folosirea altui vector in care introducem valorile verificate mi se par cam ineficiente.



#include <iostream.h>
int main()

{
int a[50], i, j, n, val, nr=0, nrmax=0;
cout<<"n="; cin>>n;

  cout<<"Introduceti componentele vectorului:";
    for (i=0; i<n; i++) cin>>a[i];

   for (i=0; i<n; i++)   
   {
      for (j=1; j<n; j++) 
         if (a[i]==a[j]) nr++;
    if (nr>nrmax) nrmax=nr, val=a[i];
    }

cout<<val;  
return 0;
}


Răspuns :

#include <iostream>
#include <limits.h>
using namespace std;
const int NMAX = 200000000;

int nr[NMAX];

int main()
{
    int n, x, Max = 0, poz = 1;
    cin >> n;
    for(int i=1; i<=n; i++) {
        cin >> x;
        nr[x]++;
        if(nr[x] >= Max) { Max = nr[x]; poz = x; }
    }
    cout << '\n' << poz << '\n';
}

Si fara vectori :)

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int n, i, max_pos=-1, max_count=-1, tmp1, tmp2, tmp3;
    cin>>n;int a[n];
    for (i=0;i<n;i++) cin>>a[i];
    sort(a, a+n);
    for(i=0;i<n;i++){
        tmp1=i+1;
        tmp2=i;//poz curenta
        tmp3=1;//nr de nr gasite
        while(a[i]==a[tmp1]){
            tmp3++;
            tmp1++;
        }
        if(tmp3>max_count){
            max_pos=tmp2;
            max_count=tmp3;
        }
        i=tmp1-1;
    }
    cout<<a[max_pos];
    return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de ajutor, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și vă încurajăm să ne salvați în lista de favorite!


Ze Questions: Alte intrebari