UNPKG

@lazy-random/array-algorithm

Version:
1 lines 2.81 kB
{"version":3,"file":"index.cjs.production.min.cjs","sources":["../src/array_rebase.ts","../src/swapAlgorithm.ts"],"sourcesContent":["\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","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"],"names":["bool","ret_b","length","min","max","i","n_diff","n","overwrite","arr","slice","idx","cache","ret","swapAlgorithm2","fn","arrayRandIndexByLength","ceil","len","j"],"mappings":";;;;;;;;;MAIMA,cAEOC,EAAAC;EAIZ,IAAa,mBAARC,KAAQ,mBAAAC,SAIFC,OAAA;IAGT,QAAAJ,EAASI,KAIJC;;MAgBLN,KAAA;MACA;;SAXC,kBAGAO;;;;MAsBHN,EAAAI;;;;;;;;;wBC3CaG,IAAAC,IACbA,EAAoBC;aAMK;IAExB,IAAAC;QACAN,MAAIM,GAGuB;IAG5B,IAAAC,IAAUC,EAAAR;IAGLQ,EAAAR,KAAAQ,EAAAF;;SAQDE;4BAKH,SAAAC,eAAAL,GAAAD,GAAAO,IAAAC,EAAAA;EAGA,IAAAX,IAAAI,EAAAP,mCAKEG,YAOWY,KAAAC,IAAA;;IAEb,IAAAP,IAAII,EAAAG;aAEJP,MAAIN,MAMLM,IAAAI,EADAV,IAAAc,IACAD;;;;;"}