Seçenek 0: Yerinde İzin Vermesi (1995) Faith E. Fich, J. Ian Munro, Patricio V. Poblete zaman O ( log 2 n ) boşluk.O(nlogn)O(log2n)
Seçenek 1: İzninizi özlü bir veri yapısına sıkıştırarak hile yapın, bkz. Munro http://www.itu.dk/people/ssrao/icalp03-a.pdf .
2. Seçenek: özlü perma depolamak ve hile için ekstra boşluk kullanmak için bir asal döngüsü ayrışma http://oeis.org/A186202
Seçenek 3: Değiştirilen her bir döngünün en büyük endeksini takip edin. Her yineleme için, döngüsündeki her şeyi birer birer taşımak için en büyük görünmeyen dizini kullanın. Görülen bir dizine çarptığında, döngü zaten manipüle edildiğinden tüm bu işleri geri alın. süre, O ( # döngü ∗ log n ) boşluk.O(n2)O(#cycles∗logn)
Seçenek 4: Değiştirilen her bir döngünün en büyük endeksini takip edin, ancak bunları yalnızca farklı döngü uzunlukları halinde yapın. Her yineleme için, her bir döngü içindeki her şeyi birer birer taşımak için en büyük görünmeyen dizini kullanın. Görülen bir dizine çarparsa, bu işi geri alın, çünkü döngü döngüsü çoktan değiştirildi. zaman, O ( ( # döngüleri _ ile _ aynı _ boyutu ) * log n ) alanı.O(n2∗distinct_cycle_lengths)O((#cycles_with_same_size)∗logn)
Seçenek 5: Aynı kağıttan Munro tarafından Seçenek 0, döngüsünü döndürmek p ( i ) eğer ben o döngüde büyük endeksidir. O ( n 2 ) zaman ve O ( log n ) boşluk.i=1..np(i)iO(n2)O(logn)