i var sth gibi: (X - farklı algoritmalar) TestClass yılındaSıralama Uygulama, aynı test durumu
public class XAlgorithm{
sort(List l){...}
}
aşağıda belirtildiği hediye olarak:
ArrayList array = new ArrayList(...); // original array
public static void main(String[]args){
AlgorithmsTest at = new AlgorithmsTest();
at.testInsertSort();
// when add at.array.printAll() - method printing all elements, there are no changes to original array what I want
at.testBubbleSort();
at.testSelectSort();
at.testShellSort();
}
testBubbleSort{
...
ArrayList arrayBubble = new ArrayList(testBubble.sort(array));
...
}
Sorun Sistemi ile ölçülen benim sonuç (zaman olduğu .currentTimeMilis()), ex için başlattığımda farklıdır. Aynı algoritmadan iki kere üst üste, aynı zamanda garip çünkü her metodu kopyaladığımda bile (tüm yeni Elemanları yeni diziye koyarak ve sonra da üzerinde çalışarak) hala yanlış çalışıyor. Zaman, hangisi olursa olsun, ana algoritmada daima en büyüktür.
Hatta her algoritma arasındaki diziyi kontrol ettim (yukarıdaki // yorumdaki gibi) ve doğrudur - hiçbir değişiklik yapılmadı, bu yüzden sorun nerede: /? Eğer bir yerde sıralama ve daha sonra dizinin bir kopyasını yapıyoruz gibi size dizinin bir kopyasını yapıyoruz belirtmiş olsalar bile önceden
Olası çoğaltılabilir [Java'da nasıl doğru bir mikro-benchmark yazarım?] (Http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in -java) – Tom
Maalesef herhangi bir bağlantı göremiyorum, o kod karmaşık değil. – kolboc