Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Szukanie ciągu elementów w innej tablicy

Ostatnio zmodyfikowano 2015-11-23 15:06
Autor Wiadomość
maciek1o3s
Temat założony przez niniejszego użytkownika
Szukanie ciągu elementów w innej tablicy
» 2015-11-22 20:34:36
C/C++
#include <cstdlib>
#include <iostream>
using namespace std;

int table2[ 3 ] = { 6, 9, 1 };

int fun( int tab[], int n )
{
    int k = 0;
    int i = 0;
    int wynik;
    if( tab[ i ] != table2[ k ] )
    {
        i++;
        fun( int tab[], int n );
    }
    else
    {
        k++
        wynik = fun( int tab[], int n );
    }
    return wynik;
}

int main( int argc, char * argv[] )
{
    int table1[ 11 ] = { 0, 1, 2, 3, 4, 6, 9, 1, 8, 9, 10 };
    fun( table1, 11 );
    cout << "Szukany ciag elementow zaczyna sie od i = " << fun( table1, 11 ) << endl;
    system( "PAUSE " );
    return 0;
}

Prosiłbym o sugestie co tu poprawić. Mam problem z użyciem rekurencji. Nie wiem jak poprawnie sformułować to else.

Chcę znaleźć w tabeli 1 ciąg elementów z tabeli 2giej, a więc 6 9 1 i podać od którego i w głównej tabeli się on zaczyna
P-140610
michal11
» 2015-11-22 21:20:34
Nie masz warunku stop, nie ważne co się stanie zawsze twoja funkcja wywoła się jeszcze raz.
Najlepiej chyba skorzystać z tego algorytmu.
Albo bardziej ogólnie
Frazy, które należy wpisać w wyszukiwarkę google:
P-140615
bombatom69
» 2015-11-23 15:06:03
Nie ma większego znaczenia czy szukasz ciągu znaków w innym ciągu znaków, czy szukasz ciągu liczb w innym ciągu liczb.
Dlatego powinieneś zastosować jeden z algorytmów wyszukiwania wzorca.

Możesz zrobić to tzw. algorytmem trywialnym, ale jeśli masz aspiracje poznać coś ciekawszego, to masz algorytmy morrisa-pratta, knutha-morrisa-pratta i boyera-moora. Jest też algorytm oparty na automacie skończonym.
P-140647
« 1 »
  Strona 1 z 1