Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
basic_sort
Search
Hiroki Kumamoto
June 23, 2015
0
70
basic_sort
ミニ勉強会でアルゴリズムについて話したスライド
Hiroki Kumamoto
June 23, 2015
Tweet
Share
More Decks by Hiroki Kumamoto
See All by Hiroki Kumamoto
How to implement timetable view on iOS
kumabook
0
86
Promiseを実装してみよう
kumabook
0
260
bff_tips.pdf
kumabook
0
56
Tips of server-side rendering with react + redux
kumabook
0
65
プロトコルを使って複数サービスを跨いだmusic playerを実装する
kumabook
2
510
emacs helm likeな WebExtensions を作った話
kumabook
0
130
merges sort
kumabook
0
75
lightweight introducing with reactive cocoa
kumabook
0
53
git_peco_tips
kumabook
0
26
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
A Philosophy of Restraint
colly
203
16k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
KATA
mclloyd
29
14k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Designing for humans not robots
tammielis
249
25k
GitHub's CSS Performance
jonrohan
1030
460k
Optimizing for Happiness
mojombo
376
69k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Transcript
Basic Sort Hiroki Kumamoto
Selection Sort • Ұ൪খ͍͞Λ୳͢ͱ͍͏ͷΛNճ܁Γฦ͢ • Ұ൪খ͍͞ͷΛa[i]ʹ࣋ͬͯ͘Δ • 1/2N^2 ͷൺֱ •
(N-1) + (N-2)+ …. + 1 + 0 • Nճͷަ • O(N^2)
• Visualize demo • http://kumabook.github.io/playground/ index.html#selection-sort
Insertion sort • i-1൪·Ͱ͕ྻ͍ͯ͠Δͱͯ͠ɺi൪ͷཁૉ Λ0..i൪ͷதͰਖ਼͍͠Ґஔʹૠೖ͢Δ • best case: ྻࡁΈ: N
-1 ͷൺֱ + 0ަ • worst case: ٯॱ: 1/2 N^2ͷൺֱ+ 1/2N^2ͷަ • O(N) ~ O(N^2)
• Visualize demo • http://kumabook.github.io/playground/ index.html#insertion-sort
Shell Sort • Insertion sort ٯॱʹฒΜͰ͍Δͱ͖ʹ͍ • → ͱͼͱͼͷinsertion sortԿճ͔ʹ͚ͯΔ
• Best sequence of increments? • 1, 3, 7, 15, 31, 63 … Powers of two minus one. • 1, 4, 13, 40, 121, 364…3x + 1 • ฏۉɿO (N ^ 3/2)
Shell Sort • αΠζͷখ͍͞ྻʹରͯ͠༗ޮ • bzip2, /linux/kernel/groups.c • ίʔυͷfoot print
͕খ͍͞ • uClibc
• Visualize demo • http://kumabook.github.io/playground/ index.html#shell-sort
Reference • Coursera: Algorithms, Part 1 • https://www.coursera.org/course/algs4partI • http://algs4.cs.princeton.edu/home/