@lazy-random/array-algorithm
Version:
1 lines • 3.4 kB
Source Map (JSON)
{"version":3,"file":"index.cjs.development.cjs","sources":["../src/swapAlgorithm.ts","../src/array_rebase.ts"],"sourcesContent":["import { IArrayInput02 } from '@lazy-random/shared-lib';\nimport { arrayRandIndexByLength } from '@lazy-random/array-rand-index';\n\nexport function swapAlgorithm<T extends IArrayInput02<any>>(arr: T,\n\toverwrite?: boolean,\n\tfn: (n: number, ...argv: any[]) => number = arrayRandIndexByLength,\n)\n{\n\tlet i: number = arr.length;\n\t// @ts-ignore\n\tlet ret = (overwrite ? arr : arr.slice());\n\n\twhile (i)\n\t{\n\t\tlet idx: number = fn(i--);\n\n\t\tif (i === idx) continue;\n\n\t\tlet cache = ret[i];\n\t\tret[i] = ret[idx];\n\t\tret[idx] = cache;\n\n\t\t//console.log(i, idx, ret);\n\t}\n\n\treturn ret\n}\n\nexport function swapAlgorithm2<T extends IArrayInput02<any>>(arr: T,\n\toverwrite?: boolean,\n\tfn: (n: number, ...argv: any[]) => number = arrayRandIndexByLength,\n): T\n{\n\tlet i: number = arr.length;\n\t// @ts-ignore\n\tlet ret = (overwrite ? arr : arr.slice());\n\tlet len = i;\n\tlet j = Math.ceil(len / 2);\n\n\twhile (i)\n\t{\n\t\tlet idx: number = fn(len);\n\t\ti--;\n\n\t\tif (idx === i)\n\t\t{\n\t\t\tif (i < j)\n\t\t\t{\n\t\t\t\tidx = fn(len)\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tidx = fn(i)\n\t\t\t}\n\t\t}\n\n\t\tif (i === idx) continue;\n\n\t\tlet cache = ret[i];\n\t\tret[i] = ret[idx];\n\t\tret[idx] = cache;\n\n\t\t//console.log(i, idx, ret);\n\t}\n\n\treturn ret\n}\n","\n/**\n * back to original interval\n */\nexport function array_rebase(ret_b: number[], n_diff: number, min: number, max: number)\n{\n\tlet b_sum = 0;\n\n\tlet bool: boolean;\n\n\tlet i = ret_b.length;\n\n\tif (typeof min === 'number' || typeof max === 'number')\n\t{\n\t\twhile (i--)\n\t\t{\n\t\t\tlet v = ret_b[i];\n\t\t\tlet n = v + n_diff;\n\n\t\t\tif (n >= min && n <= max)\n\t\t\t{\n\t\t\t\tbool = true;\n\t\t\t\tret_b[i] = n;\n\n\t\t\t\tb_sum += n\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tbool = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\telse\n\t{\n\t\twhile (i--)\n\t\t{\n\t\t\tlet v = ret_b[i];\n\t\t\tlet n = v + n_diff;\n\n\t\t\tret_b[i] = n;\n\n\t\t\tb_sum += n\n\t\t}\n\n\t\tbool = true;\n\t}\n\n\treturn {\n\t\tbool,\n\t\tb_sum,\n\t};\n}\n"],"names":["overwrite","arr","slice","idx","i","cache","ret","swapAlgorithm2","fn","arrayRandIndexByLength","length","ceil","len","j","bool","ret_b","min","max","v","n_diff","n"],"mappings":";;;;;;;;AAGA;SAMc,GAAAA,SAAA,GAAAC,GACb,GAAAA,GAAA,CAAoBC,OAGnB,CAAA;UAGwB,EAAA;AAExB,IAAA,IAAAC,GAAA;QACAC,CAAA,KAAID,GAAA,EAGuB,SAAA;AAG5B,IAAA,IAAAE,KAAA,GAAUC,GAAA,CAAAF,CAAA,CAAA,CAAA;AAGLE,IAAAA,GAAA,CAAAF,CAAA,CAAAE,GAAAA,GAAA,CAAAH,GAAA,CAAA,CAAA;;;;;SAQDG,GAAA,CAAA;;AAKH,SAAAC,eAAAN,GAAA,EAAAD,SAAA,EAAAQ,EAAA,GAAAC,qCAAA,EAAA;AAGA,EAAA,IAAAL,CAAA,GAAAH,GAAA,CAAAS,MAAA,CAAA;AAEC;uCAAA,EAAA,CAAA;SAGC,GAAAN,CAAA,CAAA;cAOW,CAAAO,IAAA,CAAAC,GAAA,GAAA,CAAA,CAAA,CAAA;;AAEb,IAAA,IAAAT,GAAI,GAAAK,EAAA,CAAAI,GAAQ,CAAA,CAAA;OACZ,CAAA;IACA,IAAAT,GAAA,KAAIC,CAAI,EAAG;MAGX,IAEDA,CAAA,GAAAS,CAAA,EAAA;QACAV,GAAA,GAAAK,EAAA,CAAAI,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;AC9DK,EAAA,IAAAE,IAAA,CAAA;OAEO,GAAAC,KAAA,CAAAL,MAAE,CAAA;EAId,IAAA,OAAKM,GAAQ,KAAA,QAAA,IAAA,OAAAC,GAAA,KAAA,QAAA,EAAA;WAIFb,CAAA,EAAA,EAAA;AAGT,MAAA,IAAAc,CAAA,GAAAH,KAAS,CAAAX,CAAA,CAAA,CAAA;kBAIJe,MAAA,CAAA;;eAMJ,IAAA,CAAA;;aAGD,IAACC,CAAA,CAAA;;AAODN,QAAAA,IAAA,GAAA,KAAA,CAAA;AACA,QAAA,MAAA;;;;;;;AAcFC,MAAAA,KAAA,CAAAX,CAAA;;;;;;;;;;;;;;;"}