とはいえ、実際の人間は決してランダムではないが…
What happens if you ask people to pick a number `at random’ between 1 and 100?
77
69
7
100
9
(N = 6750)
(https://telescoper.wordpress.com/2018/04/11/what-happens-if-you-ask-people-to-pick-a-number-at-random-between-1-and-100/)
17 / 165
ソートのアルゴリズム
2-2
0.0~0.1 0.1~0.2 0.2~0.3 0.3~0.4 0.4~0.5 0.5~0.6 0.6~0.7 0.7~0.8 0.8~0.9 0.9~1.0
一般のデータの場合
一般のデータの場合、1 つのグループに密集する 「意地悪な」 ケースが作れる
すると、アルゴリズムの計算量が 𝑂 𝑁2 になる
x 0 x 0 x 0 x 0 x 0 x 0 x 10 x 0 x 0 x 0
コスト = 100
※ コストは各箱に対する 「入っている個数の 2 乗」 の合計とする (計算量の目安になる)
94 / 165
Slide 95
Slide 95 text
ソートのアルゴリズム
2-2
ランダムなデータの場合
でも、ランダムなら、前のような例は普通起こらない (相当運が悪くない限り)
理由は、ランダム = 「偏りがない」 から
0.0~0.1 0.1~0.2 0.2~0.3 0.3~0.4 0.4~0.5 0.5~0.6 0.6~0.7 0.7~0.8 0.8~0.9 0.9~1.0
x 0 x 0 x 1 x 2 x 1 x 0 x 2 x 1 x 1 x 2
コスト = 16
Example 1
95 / 165
Slide 96
Slide 96 text
ソートのアルゴリズム
2-2
0.0~0.1 0.1~0.2 0.2~0.3 0.3~0.4 0.4~0.5 0.5~0.6 0.6~0.7 0.7~0.8 0.8~0.9 0.9~1.0
ランダムなデータの場合
でも、ランダムなら、前のような例は普通起こらない (相当運が悪くない限り)
理由は、ランダム = 「偏りがない」 から
x 1 x 3 x 0 x 0 x 2 x 1 x 0 x 1 x 2 x 0
コスト = 20
Example 2
96 / 165