回答編集履歴
1
編集
test
CHANGED
@@ -1,4 +1,16 @@
|
|
1
|
+
元の回答がミスリーディングなので、斜線消しして、コメントの一部を転記しました。
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
「データの並び替え」も「要素の探索」もよく行われることです。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
ただ「ソート」や「探索」の典型的なアルゴリズムはまさにそのものを使うというのではなく、もっと総合的に判断して使用されます。
|
10
|
+
|
11
|
+
|
12
|
+
|
1
|
-
競技プログラミングなどでなければ、ピンポイントかつライブラリ使用不可で組むことを要求されることはないと思われます。
|
13
|
+
~~競技プログラミングなどでなければ、ピンポイントかつライブラリ使用不可で組むことを要求されることはないと思われます。~~
|
2
14
|
|
3
15
|
|
4
16
|
|
@@ -6,8 +18,56 @@
|
|
6
18
|
|
7
19
|
|
8
20
|
|
9
|
-
また、探索やソートは比較的容易に理解できるので、言語になれるための頭の体操と考えて学んでみたり、組んでみたりするとよいと思われます。
|
21
|
+
~~また、探索やソートは比較的容易に理解できるので、言語になれるための頭の体操と考えて学んでみたり、組んでみたりするとよいと思われます。~~
|
10
22
|
|
11
23
|
|
12
24
|
|
13
|
-
基礎的なアルゴリズムが難しすぎて理解できないと感じるのであれば、今後プログラミングしていくのは茨の道です…
|
25
|
+
~~基礎的なアルゴリズムが難しすぎて理解できないと感じるのであれば、今後プログラミングしていくのは茨の道です…~~
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
コメントから転記:
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
---
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
ソート:
|
40
|
+
|
41
|
+
前処理としてよく使われます。ソートはO(nlogn)なので、先にソートしてからだとその後効率よく処理できることが多々あります。
|
42
|
+
|
43
|
+
ソートしておくとその後の探索が2分木になるなど。
|
44
|
+
|
45
|
+
ソートされていることを前提にしている量というものもあります。(http://www.randpy.tokyo/entry/roc_auc)
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
探索:
|
50
|
+
|
51
|
+
木構造の探索アルゴリズムでしょうか。深さ優先探索、幅優先探索?
|
52
|
+
|
53
|
+
応用先で有名なMinMax法でしょうか。ゲームAIでよく見かけます。
|
54
|
+
|
55
|
+
目的関数の最大化・最小化に使えます。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
人が見やすい・理解しやすいように「ソート」して、人が欲しいものを「探索」するアルゴリズムなので、プログラミングしていく限り、到るところで出てきますね。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
追記して、アルゴリズムはデータ構造とセットです。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
例えば、
|
68
|
+
|
69
|
+
「探索」という目的に対して、リストであれば一回でO(n)。
|
70
|
+
|
71
|
+
複数回やるのなら「ソート」してから次からO(logn)。
|
72
|
+
|
73
|
+
それに対して、辞書・ハッシュならO(1)です。
|