Najpopularniejszy element w ciągu
Kod był wyświetlany 1940 razy.
    /*
  Name: Najpopularniejszy element w ciągu 
  Copyright: GPL GNU
  Date: 27-04-09 22:18
  Description: Wyznacz "najpopularniejszy" element w ciągu, czyli element 
  występujący największą liczbę razy. Zaprojektuj jak najszybszy algorytm 
  wyznaczania najpopularniejszego elementu ciągu oraz oszacuj liczbę 
  wykonywanych przez niego operacji (czas działania) jako funkcję od liczby 
  elementów w ciągu. Zaprogramuj swój algorytm i zastosuj go do ciągów 
  znajdujących się w plikach dane5-1.txt, dane5-2.txt, dane5-3.txt. W przypadku,
  gdy w ciągu jest więcej niż jeden najpopularniejszy element, jako wynik 
  podajemy dowolny z nich. Na przykład dla ciągu 1, 3, 5, 1, 3 poprawną 
  odpowiedzią jest zarówno 1, jak i 3 (oba elementy występują dwa razy). 
  Wpisz poniżej najpopularniejsze elementy dla poszczególnych ciągów:

*/

#include<iostream>
#include<fstream>
using namespace std;
int nwe(int *tab,int n)
{
    int p=1,i,f=0,g=0,x,j,temp,suma=0,ptab[n];

    for(i=0;i<n;i++)//Pętla główna
    {
    x=tab[i];

                                for(j=0;j<n;j++)//Pętla zliczająca powtórzenia liczby x w tablicy tab
                                 {
                                        if(x==tab[j])
                                        f=f+1;
                                 }
                                        if(f>g)//Przypisanie maksymalnej częstości
                                        {
                                         ptab[0]=x;
                                         g=f;
                                         }

                                if(f==g)//Gdy częstość jest taka sama
                                {
                                 temp=0;
                                        for(j=0;j<p;j++)//Sprawdzenie czy liczba x nie jest już zawarta w ptab
                                                {
                                         if(ptab[j]==x)
                                                temp++;
                                                }
                                                 if(temp==0)//jeżeli nie jest zawarta
                                                        {
                                                        ptab[p]=x;
                                                        suma=suma+f;
                                                        p++;
                                                        }
                                                 }
                                                 f=0;
                                                 }
                                                 suma=suma+g;

                                if(suma==n)//Gdy liczby występują z taką samą częstością
                                {
                                 cout<<"\n\nNie ma w zbiorze liczby wystepujacej najczesciej";
                                }
                                else//Wyświetlenie wyniku
        {
         for(i=0;i<p;i++)
         cout<<"\n\tLiczba "<<ptab[i]<<" wystepuje "<<g<<" razy";
        }
        }
int main()
{
    int *tab1=new int[100],i,licznik=0;

    ifstream plik1("dane5-1.txt");
    plik1>>tab1[i];
    while(plik1)
    {
                i++;
                licznik++;
                plik1>>tab1[i];
    }

    cout<<"\n\tWystepowanie najczesciej wystepujacych liczb\n\tw pliku dane5-1.txt : \n";
    nwe(tab1,licznik);

    int *tab2=new int[1000];
    i=0,licznik=0;
    ifstream plik2("dane5-2.txt");
    plik2>>tab2[i];
    while(plik2)
    {
                i++;
                licznik++;
                plik2>>tab2[i];
    }

    cout<<"\n\n";
    cout<<"\n\tWystepowanie najczesciej wystepujacych liczb\n\tw pliku dane5-2.txt : \n";
    nwe(tab2,licznik);

    int *tab3=new int[10000];
    i=0,licznik=0;
    ifstream plik3("dane5-3.txt");
    plik3>>tab3[i];
    while(plik3)
    {
                i++;
                licznik++;
                plik3>>tab3[i];
    }

    cout<<"\n\n";
    cout<<"\n\tWystepowanie najczesciej wystepujacych liczb\n\tw pliku dane5-3.txt : \n";
    nwe(tab3,licznik);

getchar();
getchar();
}
    
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT