UNPKG

@lazy-random/array-algorithm

Version:
1 lines 3.4 kB
{"version":3,"file":"index.umd.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":";;;;;;;;CAGA;UAMc,GAAAA,SAAA,GAAAC,GACb,GAAAA,GAAA,CAAoBC,OAGnB,CAAA;WAGwB,EAAA;CAExB,IAAA,IAAAC,GAAA;SACAC,CAAA,KAAID,GAAA,EAGuB,SAAA;CAG5B,IAAA,IAAAE,KAAA,GAAUC,GAAA,CAAAF,CAAA,CAAA,CAAA;CAGLE,IAAAA,GAAA,CAAAF,CAAA,CAAAE,GAAAA,GAAA,CAAAH,GAAA,CAAA,CAAA;;;;;UAQDG,GAAA,CAAA;;CAKH,SAAAC,eAAAN,GAAA,EAAAD,SAAA,EAAAQ,EAAA,GAAAC,qCAAA,EAAA;CAGA,EAAA,IAAAL,CAAA,GAAAH,GAAA,CAAAS,MAAA,CAAA;CAEC;wCAAA,EAAA,CAAA;UAGC,GAAAN,CAAA,CAAA;eAOW,CAAAO,IAAA,CAAAC,GAAA,GAAA,CAAA,CAAA,CAAA;;CAEb,IAAA,IAAAT,GAAI,GAAAK,EAAA,CAAAI,GAAQ,CAAA,CAAA;QACZ,CAAA;KACA,IAAAT,GAAA,KAAIC,CAAI,EAAG;OAGX,IAEDA,CAAA,GAAAS,CAAA,EAAA;SACAV,GAAA,GAAAK,EAAA,CAAAI,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;CC9DK,EAAA,IAAAE,IAAA,CAAA;QAEO,GAAAC,KAAA,CAAAL,MAAE,CAAA;GAId,IAAA,OAAKM,GAAQ,KAAA,QAAA,IAAA,OAAAC,GAAA,KAAA,QAAA,EAAA;YAIFb,CAAA,EAAA,EAAA;CAGT,MAAA,IAAAc,CAAA,GAAAH,KAAS,CAAAX,CAAA,CAAA,CAAA;mBAIJe,MAAA,CAAA;;gBAMJ,IAAA,CAAA;;cAGD,IAACC,CAAA,CAAA;;CAODN,QAAAA,IAAA,GAAA,KAAA,CAAA;CACA,QAAA,MAAA;;;;;;;CAcFC,MAAAA,KAAA,CAAAX,CAAA;;;;;;;;;;;;;;;;;;;;;"}