📄 access-fannkuch.js
字号:
/* The Great Computer Language Shootout http://shootout.alioth.debian.org/ contributed by Isaac Gouy */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(); 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 (!((k = perm[0]) == 0)) { 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 = 8;var ret = fannkuch(n);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -