diff --git a/graph/bfs.cpp b/graph/bfs.cpp
index 673082432531c9367df5565ed2e1555f6fabe7cb..5a7179a325d1d7f79ffde88dcf1413c8b363a32b 100644
--- a/graph/bfs.cpp
+++ b/graph/bfs.cpp
@@ -1,5 +1,6 @@
 /**
  * Breadth First Search - BFS
+ *
  * Complexity (Time): O(|V| + |E|)
  * Complexity (Space): O(|V| + |E|)
  */
diff --git a/graph/dfs.cpp b/graph/dfs.cpp
index e01c0ca3ebfcf4f3454c53d6e97fa4543c15e1be..8748a19a6e8a4fc0748d15deefc74e499f113c04 100644
--- a/graph/dfs.cpp
+++ b/graph/dfs.cpp
@@ -1,5 +1,6 @@
 /**
  * Depth First Search - DFS
+ *
  * Complexity (Time): O(|V| + |E|)
  * Complexity (Space): O(|V| + |E|)
  */
diff --git a/graph/dijkstra.cpp b/graph/dijkstra.cpp
index a0c8b1b2ab948548258fe7fa8c89236ad23910d2..86a350c1cac6e1537827525e27a7cd97878e67c7 100644
--- a/graph/dijkstra.cpp
+++ b/graph/dijkstra.cpp
@@ -1,5 +1,6 @@
 /**
  * Dijkstra
+ *
  * Complexity (Time): O(|E| + |V| log |V|)
  * Complexity (Space): O(|E| + |V|)
  */
diff --git a/paradigm/ternary_search.cpp b/paradigm/ternary_search.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..55ee026c0d831421951fa24d50980a030f99510e
--- /dev/null
+++ b/paradigm/ternary_search.cpp
@@ -0,0 +1,35 @@
+/** 
+ * Ternary Search
+ *
+ * Complexity (Time): O(log n)
+ * Complexity (Space): O(1)
+ */
+
+#define EPS 1e-6 
+
+// Unimodal function
+double f(double x) {
+  return x * x;
+}
+
+// Execute ternary search to find maximum or minimum between l and r
+double ternary_search(double l, double r) {
+  double rt, lt;
+
+  for (int i = 0; i < 500; ++i) {
+    if (fabs(r - l) < EPS)
+      return (l + r) / 2.0;
+
+    lt = l + (r - l) / 3.0;
+    rt = r - (r - l) / 3.0;
+
+    // < | minimum of f
+    // > | maximum of f
+    if (f(lt) < f(rt))
+      l = lt;
+    else
+      r = rt;
+  }
+
+  return (l + r) / 2.0;
+}
diff --git a/structure/bit.cpp b/structure/bit.cpp
index 73165d35b594c0ac3b5f21e789a510f1b21821c4..b7cbe39611e83756854e547eaffb43d136944c14 100644
--- a/structure/bit.cpp
+++ b/structure/bit.cpp
@@ -1,9 +1,9 @@
 /**
  * Binary Indexed Tree - BIT 
+ *
  * Complexity (Time):
  *   Update -> O(log n)
  *   Query  -> O(log n)
- *
  * Complexity (Space): O(n)
  */
 
diff --git a/structure/bit2d.cpp b/structure/bit2d.cpp
index 917cd972929992695260d052a79aa1cb4f05269e..43aa80141a7e67620242ad74f53853eba3b5b7ca 100644
--- a/structure/bit2d.cpp
+++ b/structure/bit2d.cpp
@@ -1,9 +1,9 @@
 /** 
  * Binary Indexed Tree 2D - BIT2D
+ *
  * Complexity (Time):
  *   Update -> O(log^2 n)
  *   Query  -> O(log^2 n)
- *
  * Complexity (Space): O(n^2)
  */
 
diff --git a/structure/bitmask.cpp b/structure/bitmask.cpp
index f6c8e2c7c4c71c66fc63013f79006f17a8d6f56b..65b05fdd1c586ae3ea06d7cc7e29bcca1f0f6550 100644
--- a/structure/bitmask.cpp
+++ b/structure/bitmask.cpp
@@ -1,5 +1,6 @@
 /**
  * Bitmask 
+ *
  * Complexity (Time): O(1)
  * Complexity (Space): O(1)
  */
diff --git a/structure/segment_tree.cpp b/structure/segment_tree.cpp
index a78608dc241c48714bf5da7f9f11c800dd86bc8c..e825ed9584c1eec7da08d92bddc79ddd7a85ed95 100644
--- a/structure/segment_tree.cpp
+++ b/structure/segment_tree.cpp
@@ -1,9 +1,10 @@
 /**
  * Segment Tree
+ *
  * Complexity (Time):
- *     Build  -> O(n log n)
- *     Update -> O(log n)
- *     Query  -> O(log n)
+ *   Build  -> O(n log n)
+ *   Update -> O(log n)
+ *   Query  -> O(log n)
  * Complexity (Space): O(n)
  */