2.0.14 • Published 3 years ago

@algorithm.ts/knuth-shuffle v2.0.14

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

A typescript implementation of the Knuth-Shuffle algorithm.

Knuth-Shuffle is a shuffle algorithm, which can complete the shuffle in $O(N)$ time complexity on the basis of only using a constant level of extra space.

If you are curious about this algorithm, you can visit here for more details.

Install

  • npm

    npm install --save @algorithm.ts/knuth-shuffle
  • yarn

    yarn add @algorithm.ts/knuth-shuffle
  • deno

    import knuthShuffle from 'https://raw.githubusercontent.com/guanghechen/algorithm.ts/main/packages/knuth-shuffle/src/index.ts'

Usage

  • Shuffle nums.

    import knuthShuffle from '@algorithm.ts/knuth-shuffle'
    
    knuthShuffle([1, 2, 3, 4, 5])
  • Shuffle complex data nodes.

    import knuthShuffle from '@algorithm.ts/knuth-shuffle'
    
    interface Node {
      name: string
      email: string
      age: number
    }
    
    const nodes: Node[] = [
      { name: 'alice', email: 'alice@gmail.com', age: 40 },
      /*... omit ...*/
      { name: 'bob', email: 'lob@gmail.com', age: 40 },
    ]
    knuthShuffle(nodes)
  • Shuffle a contiguous range of the original array.

    import knuthShuffle from '@algorithm.ts/knuth-shuffle'
    
    // shuffle { a[2], a[3], a[4], a[5], a[6] }
    knuthShuffle([1, 2, 3, 4, 5, 6, 7, 8, 9], 2, 7)

Related

2.0.14

3 years ago

2.0.13

3 years ago

2.0.12

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.11

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.9

3 years ago

2.0.10

3 years ago

2.0.8

3 years ago

2.0.8-alpha.0

3 years ago

2.0.7-alpha.1

3 years ago

2.0.7-alpha.0

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.0-alpha.0

3 years ago

2.0.1

3 years ago

1.0.24

3 years ago

2.0.0

3 years ago

1.0.23

4 years ago

1.0.19

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago