Toto je starší verze dokumentu!
Zrychlení Javy
Java není o moc pomalejší než C/C++. Musíte ale kód patřičně optimalizovat. Nejdřív si program napište tak jak umíte, otestujte v upload systemu že dává správné řešení na menších datech. Pak se vrhněte na optimalizaci:
-
pro výstup použijte jenom jeden System.out.println()
pro spojování stringů používejte StringBuilder a nikoli „prvni“+„druhy“
pozor na funkce pro práci se stringy jako startsWith, replace, trim - většinou jdou nahradit subStringem nebo porovnáváním charů, je to rychlejší
pro rozdělení řetězce a parsování používejte StringTokenizer
optimalizujte celý kód, nikoli jenom vlastní algoritmus. Mě nejvíc času zabrala tvorba grafu parsováním vstupu.
přidejte slovo final k public metodám, které nepřetěžujete
ArrayList bývá rychlejší než LinkedList
HashMap se velmi hodí na uskladnění např. uzlů grafu, má rychlé vyhledávání
nevytvářejte zbytečné lokální proměnné, kratší kód bývá rychlejší
Nahoru