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

counting sort - sortowanie pliku z napisami

Ostatnio zmodyfikowano 2015-12-11 13:52
Autor Wiadomość
marjanos
Temat założony przez niniejszego użytkownika
counting sort - sortowanie pliku z napisami
» 2015-12-11 10:55:12
hej,zrobiłem program co przepisuje sobie znaki do pliku, ten plik ma posortować sortowaniem counting. pomoże ktoś mi to napisać?

plik do testow http://www58.zippyshare.com/v/rCyl657b/file.html


C/C++
#include<iostream>
#include<fstream>
using namespace std;

void countingsort( int A[], int B[], int k, int rozmiar ) {
    int i;
    int * C = new int[ k + 1 ];
    for( i = 0; i <= k; i++ ) {
        C[ i ] = 0;
    }
    for( i = 0; i < rozmiar; i++ ) {
        C[( A[ i ] ) ] ++;
    }
   
    for( i = 1; i <= k; i++ ) {
        C[ i ] += C[ i - 1 ];
    }
    for( i = rozmiar - 1; i >= 0; i-- ) {
        B[( C[( A[ i ] ) ] ) - 1 ] = A[ i ];
        C[( A[ i ] ) ] --;
    }
    delete[] C;
}

int max_liczba( int tablica[], int rozmiar ) {
    int max = tablica[ 0 ];
    for( int i = 1; i < rozmiar; i++ ) {
        if( max < tablica[ i ] ) {
            max = tablica[ i ];
        }
    }
    return max;
}

int main() {
    int ilosc_liczb = 0, i, licznik = 0;
    char dane[ 255 ], bin, tab[ 100 ];
    string a, wiersz;
   
    //ile wierszy
    ifstream ass( "nazwiska.txt" );
    while( !ass.eof() ) { ilosc_liczb++; getline( ass, a ); }
    ass.close();
    string nazwiska[ ilosc_liczb ];
    //-----------
   
    //przepisywanie samych znakow
    ifstream plik( "nazwiska.txt" );
    ofstream plik2( "nazwiska_sort.txt" );
   
    while( !plik.eof() ) {
        bin = plik.get();
       
        if(( bin >= 65 && bin <= 90 ) && licznik != 0 ) {
            plik2 << endl << bin;
        } else if(( bin >= 97 && bin <= 122 ) ||(( bin >= 65 && bin <= 90 ) && licznik == 0 ) ) {
            licznik++;
            plik2 << bin;
        }
       
    }
    plik.close();
    plik2.close();
    //----------
   
    //tworzenie tablicy nazwiska[i]
    i = 0;
    ifstream plik3( "nazwiska_sort.txt" );
    while( !plik3.eof() ) {
        getline( plik3, wiersz );
        nazwiska[ i ] = wiersz;
        i++;
    } plik3.close();
   
    system( "PAUSE" );
    return 0;
}
P-141748
darko202
» 2015-12-11 13:52:53
P-141767
« 1 »
  Strona 1 z 1