Zrychlení permutace – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zrychlení permutace – C / C++ – Fórum – Programujte.comZrychlení permutace – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
permutace
~ Anonymní uživatel
2 příspěvky
22. 7. 2011   #1
-
0
-

Ahoj,jak můžu co nejvíc zrychlit tento program?:

#include <string>
#include <iostream>

using namespace std;
int count=0;
void string_permutation( std::string& orig, std::string& perm )
{
	if( orig.empty() )
	{
		std::cout<<perm<<std::endl;
		count=count+1;
		return;
	}

	for(int i=0;i<orig.size();++i)
	{
		std::string orig2 = orig;
		orig2.erase(i,1);
		std::string perm2 = perm;
		perm2 += orig.at(i);
		string_permutation(orig2,perm2);	
	} 

}

int main()
{
	std::string orig="0123456789";
	std::string perm;  

	string_permutation(orig,perm);
	cout<<"\npermutace: "<<count<<"\n";

	system("pause");

	return 0;
}
Nahlásit jako SPAM
IP: 213.19.38.–
Reklama
Reklama
crazy
~ Moderátor
+10
Grafoman
22. 7. 2011   #2
-
0
-

hodit orig.size() před cyklus...

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
m->29+6
Super člen
23. 7. 2011   #3
-
0
-

To orig.size() moc neurobí, ale ak by si prepísal rekurziu na iteráciu tak by to mohlo niečo ušetriť.

Nahlásit jako SPAM
IP: 78.141.66.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 80 hostů

Podobná vlákna

Permutace — založil Franceq

Permutace — založil Dave-CZ

Permutace bez opakování — založil alf

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý