回答編集履歴

4

微修正

2020/07/16 06:26

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- [1] 要素数が小さいとき(32以下) insettion-sortに切り替え
5
+ [1] 要素数が小さいとき(32以下) insertion-sortに切り替え
6
6
 
7
7
  [2] 分割がある程度進んだらheap-sortに切り替え
8
8
 

3

追記

2020/07/16 06:26

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -25,3 +25,9 @@
25
25
  - 中央値の算出に時間かけるわけにはいかん
26
26
 
27
27
  ので、上記のようなアルゴリズムなのでしょう。
28
+
29
+
30
+
31
+ ※ [3.1] 要素数が小さいなら先頭~末尾間の中央値
32
+
33
+ これもマジメに求めるんじゃなく、"3値の中央値を3つ集めてその中の中央値"みたいなことを繰り返してるポいです。

2

微修正

2020/07/16 00:29

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- ざっくりこんな↑かんじ。intro-sortと同じ戦略かと。
17
+ ざっくりこんな↑かんじ。intro-sortと同じ戦略かと(てかまんまintro-sortかと)
18
18
 
19
19
 
20
20
 

1

修正

2020/07/16 00:22

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -2,17 +2,19 @@
2
2
 
3
3
 
4
4
 
5
- [1] 要素数が小さいとき(32以下)挿入ソートに切り替え
5
+ [1] 要素数が小さいとき(32以下) insettion-sortに切り替え
6
6
 
7
- [2] それ以上の時は先頭/中央/末尾を元にpivot選択:
7
+ [2] 分割がある程度進んだらheap-sortに切り替え
8
8
 
9
- [2.1] 要素数が小先頭末尾間の中央値
9
+ [3] さくば先頭/中央/末尾を元にpivot選択してquick-sort
10
10
 
11
+ [3.1] 要素数が小さいなら先頭~末尾間の中央値
12
+
11
- [2.2] それ以上なら先頭/中央/末尾の3つの中央値
13
+ [3.2] それ以上なら先頭/中央/末尾の3つの中央値
12
14
 
13
15
 
14
16
 
15
- ざっくりこんな↑かんじ。⓶に近いすね
17
+ ざっくりこんな↑かんじ。intro-sortと同じ戦略かと
16
18
 
17
19
 
18
20