knuth shuffle demo -...

31
Algorithms, 4 th Edition · Robert Sedgewick and Kevin Wayne · Copyright © 2002–2011 · February 23, 2012 4:05:39 PM Algorithms F O U R T H E D I T I O N R O B E R T S E D G E W I C K K E V I N W AY N E 2.1 KNUTH SHUFFLE DEMO click to begin demo

Upload: others

Post on 09-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • Algorithms, 4th Edition · Robert Sedgewick and Kevin Wayne · Copyright © 2002–2011 · February 23, 2012 4:05:39 PM

    AlgorithmsF O U R T H E D I T I O N

    R O B E R T S E D G E W I C K K E V I N W A Y N E

    2.1 KNUTH SHUFFLE DEMO

    click to begin demo

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    2

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    3

    i r

    not yet seen

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    4

    i r

    not yet seen

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    4

    i r

    not yet seen

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    5

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    6

    ir

    not yet seenshuffled

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    7

    ir

    not yet seenshuffled

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    8

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    9

    r i

    not yet seenshuffled

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    10

    ir

    not yet seenshuffled

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    11

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    12

    ir

    not yet seenshuffled

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    13

    ir

    not yet seenshuffled

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    14

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    15

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    16

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    17

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    18

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    19

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    20

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    21

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    22

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    23

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    24

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    25

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    25

    not yet seenshuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    26

    not yet seenshuffled

    i

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    27

    shuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    28

    shuffled

    ir

  • • In iteration i, pick integer r between 0 and i uniformly at random.• Swap a[i] and a[r].

    Knuth shuffle

    29

    shuffled