Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O...

35
Algorithms, Data Structures

Transcript of Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O...

Page 1: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

Algorithms, Data Structures

Page 2: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial
Page 3: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial
Page 4: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

O

Page 5: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

O(n2) O(n log n) O(n) O(log n) O(1) …

Page 6: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

Ω

Page 7: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

Ω(n2) Ω(n log n) Ω(n) Ω(log n) Ω(1) …

Page 8: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

Θ

Page 9: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial
Page 10: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

bubble sort

Page 11: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

repeat until no swaps for i from 0 to n-2 if i'th and i+1'th elements out of order swap them

Page 12: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

selection sort

Page 13: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

for i from 0 to n-1 find smallest element between i'th and n-1'th swap smallest with i'th element

Page 14: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial
Page 15: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

(n – 1) + (n – 2) + ... + 1

Page 16: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

(n – 1) + (n – 2) + ... + 1

n(n – 1)/2

Page 17: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

(n – 1) + (n – 2) + ... + 1

n(n – 1)/2

(n2 – n)/2

Page 18: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

(n – 1) + (n – 2) + ... + 1

n(n – 1)/2

(n2 – n)/2

n2/2 – n/2

Page 19: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

(n – 1) + (n – 2) + ... + 1

n(n – 1)/2

(n2 – n)/2

n2/2 – n/2

O(n2)

Page 20: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial
Page 21: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

n2/2 – n/2

Page 22: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

n2/2 – n/2

1,000,0002/2 – 1,000,000/2

Page 23: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

n2/2 – n/2

1,000,0002/2 – 1,000,000/2

500,000,000,000 – 500,000

Page 24: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

n2/2 – n/2

1,000,0002/2 – 1,000,000/2

500,000,000,000 – 500,000

499,999,500,000

Page 25: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

n2/2 – n/2

1,000,0002/2 – 1,000,000/2

500,000,000,000 – 500,000

499,999,500,000

O(n2)

Page 26: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html

Page 27: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

https://www.toptal.com/developers/sorting-algorithms

Page 28: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

amazon.com

Page 29: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

amazon.com

Page 30: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial
Page 31: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

bool

float

int

str

...

Page 32: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

bool

float

int

str

...

Page 33: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

dict

list

range

set

tuple

...

Page 34: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

dict

list

range

set

tuple

...

Page 35: Algorithms, Data Structures · 2019-03-27 · O o o o O o o o crucial by@gcron HG85 H7J6 HG85 O HG85 o O o O O o o O O crucial HG85 H7J6 HG8S O o HG85 o O O o O O o o O O crucial

Algorithms, Data Structures