I have a weighted, undirected graph with weighted edges, that could be represented in mathematica by the following code for $N=3$
Graph[{Labeled[1 \[UndirectedEdge] 2, "0.21+\[ImaginaryI]"],
Labeled[2 \[UndirectedEdge] 3, "2"],
Labeled[3 \[UndirectedEdge] 1, "1"]}, VertexLabels -> "Name"]
What is the best way to store such graphs when $N\sim 10^6$ with regard to memory usage, retrieval of edge/vertices weights speed, and value replacement speed ?
I know about matrices and sparse matrices, and associations. But these structures generally include redundant information or useless ones (lots of 0 for example...). Is there anything more efficient ? Including in other languages if you happen to know anything abouth other languages !