Nutně potřebuji pomoct. Do 2 polí jsem načetl data ze souborů, poté pole spojil do třetího. A obsah třetího potřebuji seřadit a vypsat do souboru. Jenže takhle to trvá šíleně dlouho. Jak to mám přepsat, aby to netrvalo 20 minut? A to to mám zatím nesetříděné:
int *poleC=new int[900000];
int i,j;
for(i=0;i<maxPoleA;i++)
poleC[i]=poleA[i];
for(j=0;j<maxPoleB;j++)
poleC[i+j]=poleB[j];
cout<<"zapis do soubor.txt"<<endl;
for(i=0;i<maxPoleA+maxPoleB;i++)
{
fstream Soubor;
Soubor.open (argv[3], fstream::out | fstream::binary);
Soubor << poleC[i] << endl;
Soubor.close(); }
Fórum › C / C++
Pole
To co řekl KIIV + bych asi řadil za běhu. Tzn, budu mít otevřený 1. zdrojový soubor, z toho budu postupně načítat data do nějakého pole / vektoru / ... a rovnou je tam pomocí nějakého třídícího algoritmu řadit, pak to samé zopakuji s 2. souborem, a pak toto pole / vektor /... vypíšu do souboru.
Nebo další možností je použít místo pole / vektoru / ... nějakou mapu, případně multimapu (pokud se může stejná hodnota, podle které třídíš, může vyskytovat vícekrát). Výhoda mapy / multimapy je, že při vkládání do ní, se to automaticky třídí, takže by se asi hodila.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 3 hosté
Podobná vlákna
Razeni pole ktere v sobe ma dalsi pole podle hodnoty indexu — založil david
Zapsání generovaného čísla do pole a zapisování generovaných čísel d… — založil juraj111
Jak z "List<Integer> pole" uddelat normalni "int[] pole" — založil K4BlOs
Definice pole v C (jak použít pole uvnitř struct?) — založil oxidián
Odebrání prvku pole v C,problem s vypisem pole — založil Standa
Moderátoři diskuze