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

Knuth Shuffle Demo - fpl.cs.depaul.edufpl.cs.depaul.edu/jriely/ds1/extras/demos/21DemoKnuthShuffle.pdf•In iteration i, pick integer r between 0 and i uniformly at random. • Swap

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • 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