Slide 1

Slide 1 text

by jason orendorff for hack day, 11 august 2012 at the library Saturday, August 11, 12

Slide 2

Slide 2 text

searching Saturday, August 11, 12

Slide 3

Slide 3 text

books = [ "001.4 Graphs", "001.56 Symbols", ..., "998.9 Antarctica" ] Saturday, August 11, 12

Slide 4

Slide 4 text

"664.75 Cookies" Saturday, August 11, 12

Slide 5

Slide 5 text

books.index("664.75 Cookies") Saturday, August 11, 12

Slide 6

Slide 6 text

binary search is optimal Saturday, August 11, 12

Slide 7

Slide 7 text

a sorted array Saturday, August 11, 12

Slide 8

Slide 8 text

Saturday, August 11, 12

Slide 9

Slide 9 text

binary search in practice Saturday, August 11, 12

Slide 10

Slide 10 text

binary search in practice Saturday, August 11, 12

Slide 11

Slide 11 text

Saturday, August 11, 12

Slide 12

Slide 12 text

• humans are not machines? Saturday, August 11, 12

Slide 13

Slide 13 text

• humans are not machines Saturday, August 11, 12

Slide 14

Slide 14 text

• humans are not machines • this is not the binary search problem? Saturday, August 11, 12

Slide 15

Slide 15 text

• humans are not machines • this is not the binary search problem Saturday, August 11, 12

Slide 16

Slide 16 text

• humans are not machines • this is not the binary search problem • the cost model is wrong Saturday, August 11, 12

Slide 17

Slide 17 text

• humans are not machines • this is not the binary search problem • the cost model is wrong • also: the library cheats Saturday, August 11, 12

Slide 18

Slide 18 text

a little extra Saturday, August 11, 12

Slide 19

Slide 19 text

Saturday, August 11, 12

Slide 20

Slide 20 text

sorting Saturday, August 11, 12

Slide 21

Slide 21 text

how to sort cart.sort! cart.sort() (sort cart) Array.Sort(cart); Collections.Sort(cart); std::sort(cart.begin(), cart.end()); Saturday, August 11, 12

Slide 22

Slide 22 text

).sort() ( Saturday, August 11, 12

Slide 23

Slide 23 text

).sort() ( TypeError Saturday, August 11, 12

Slide 24

Slide 24 text

merge sort is optimal Saturday, August 11, 12

Slide 25

Slide 25 text

merge sort is optimal *up to a constant factor * Saturday, August 11, 12

Slide 26

Slide 26 text

Saturday, August 11, 12

Slide 27

Slide 27 text

Saturday, August 11, 12

Slide 28

Slide 28 text

merge sort Saturday, August 11, 12

Slide 29

Slide 29 text

merge sort • divide (in half) Saturday, August 11, 12

Slide 30

Slide 30 text

merge sort • divide (in half) • sort halves Saturday, August 11, 12

Slide 31

Slide 31 text

merge sort • divide (in half) • sort halves • merge Saturday, August 11, 12

Slide 32

Slide 32 text

merge sort • divide (in half) • sort halves • merge bucket sort Saturday, August 11, 12

Slide 33

Slide 33 text

merge sort • divide (in half) • sort halves • merge bucket sort • divide (in bins) Saturday, August 11, 12

Slide 34

Slide 34 text

merge sort • divide (in half) • sort halves • merge bucket sort • divide (in bins) • sort bins Saturday, August 11, 12

Slide 35

Slide 35 text

merge sort • divide (in half) • sort halves • merge bucket sort • divide (in bins) • sort bins • merge done! Saturday, August 11, 12

Slide 36

Slide 36 text

Insertion sort (it’s not optimal, just the fastest) Saturday, August 11, 12

Slide 37

Slide 37 text

Saturday, August 11, 12

Slide 38

Slide 38 text

Saturday, August 11, 12

Slide 39

Slide 39 text

Saturday, August 11, 12

Slide 40

Slide 40 text

Saturday, August 11, 12

Slide 41

Slide 41 text

Saturday, August 11, 12

Slide 42

Slide 42 text

Saturday, August 11, 12

Slide 43

Slide 43 text

library.nashville.org/volunteer Saturday, August 11, 12

Slide 44

Slide 44 text

Saturday, August 11, 12