Buckets:
| /* The Computer Language Benchmarks Game | |
| http://shootout.alioth.debian.org/ | |
| contributed by Isaac Gouy | |
| modified by Matthew Wilson */ | |
| function fannkuch(n) { | |
| var check = 0; | |
| var perm = Array(n); | |
| var perm1 = Array(n); | |
| var count = Array(n); | |
| var maxPerm = Array(n); | |
| var maxFlipsCount = 0; | |
| var m = n - 1; | |
| for (var i = 0; i < n; i++) perm1[i] = i; | |
| var r = n; | |
| while (true) { | |
| // write-out the first 30 permutations | |
| if (check < 30){ | |
| var s = ""; | |
| for(var i=0; i<n; i++) s += (perm1[i]+1).toString(); | |
| print(s); | |
| check++; | |
| } | |
| while (r != 1) { count[r - 1] = r; r--; } | |
| if (!(perm1[0] == 0 || perm1[m] == m)) { | |
| for (var i = 0; i < n; i++) perm[i] = perm1[i]; | |
| var flipsCount = 0; | |
| var k; | |
| while (true) { | |
| k = perm[0] | |
| if (k == 0) break; | |
| var k2 = (k + 1) >> 1; | |
| for (var i = 0; i < k2; i++) { | |
| var temp = perm[i]; perm[i] = perm[k - i]; perm[k - i] = temp; | |
| } | |
| flipsCount++; | |
| } | |
| if (flipsCount > maxFlipsCount) { | |
| maxFlipsCount = flipsCount; | |
| for (var i = 0; i < n; i++) maxPerm[i] = perm1[i]; | |
| } | |
| } | |
| while (true) { | |
| if (r == n) return maxFlipsCount; | |
| var perm0 = perm1[0]; | |
| var i = 0; | |
| while (i < r) { | |
| var j = i + 1; | |
| perm1[i] = perm1[j]; | |
| i = j; | |
| } | |
| perm1[r] = perm0; | |
| count[r] = count[r] - 1; | |
| if (count[r] > 0) break; | |
| r++; | |
| } | |
| } | |
| } | |
| var n = parseInt(arguments[0]); | |
| print("Pfannkuchen(" + n.toString() + ") = " + fannkuch(n).toString()); | |
Xet Storage Details
- Size:
- 1.72 kB
- Xet hash:
- c3d5772ed9ba69de1df377c6e525857251e3fb9a9dbcce598e37c245af5947e5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.