-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
86 lines (80 loc) · 1.51 KB
/
Copy pathmain.go
File metadata and controls
86 lines (80 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package main
import (
"os"
"time"
)
func main() {
algoName := os.Args[1]
startTime := time.Now()
switch algoName {
case "justin_bieber":
runMaxProfit()
case "binary_search":
runBinarySearch()
case "fast_power":
runFastPower()
case "kruskal":
runKruskal()
case "prims":
runPrims()
case "connected_components":
connectedComponents()
case "ford_fulkerson":
fordFulkerson()
case "strongly_connected_components":
stronglyConnectedComponents()
case "topological_sort":
topologicalSort()
case "dfs":
runDfs()
case "bfs":
bfs()
case "optimal_bst":
runOptimalBst()
case "changemaking":
runChangemaking()
case "fibotop":
runFiboTopdown()
case "fibobottom":
runFiboBottomup()
case "fibo":
runDumbfibo()
case "longest_common_seq":
runLongestCommonSubsequence()
case "matrix_chain_mult":
runMatrixChain()
case "rodcutting":
runRodcutting()
case "heapsort":
runHeapsort()
case "strassen":
fallthrough
case "matrixmult":
fallthrough
case "matrixmult_strassen":
runStrassen()
case "maxsubarray":
runMaxsubarray()
case "mergesort":
runMergesort()
case "insertionsort":
runInsertionsort()
case "linearsearch":
runLinearsearch()
case "dijkstra":
dijkstra()
case "bellmanford":
bellmanFord()
case "quicksort":
runQuicksort()
case "quickselect":
quickselect()
case "countingsort":
countingsort()
default:
println("Unknown algorithm")
}
endTime := time.Now()
elapsedTime := endTime.Sub(startTime)
println("Exec:", elapsedTime.Microseconds(), "µs")
}