graph LR A["physdes-rs ๐ฆ\nRust"] -- "arena trees\nusize indices" --> D["Same\nAlgorithms\nDME 1992\nPrimal-Dual\nSteiner Forest"] B["physdes-cpp โก\nC++20"] -- "pointer-stable\ndeque arena" --> D C["physdes-py ๐\nPython"] -- "object graph\nrecursive closures" --> D style A fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style B fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style C fill:#e3f2fd,stroke:#1565c0,stroke-width:3px style D fill:#ffccbc,stroke:#bf360c,stroke-width:3px
graph TD S["Source O"] --> T1["Terminal 1"] S --> ST["Steiner *"] ST --> T2["Terminal 2"] ST --> T3["Terminal 3"] style S fill:#ffcdd2,stroke:#c62828,stroke-width:3px style T1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style T2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style T3 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px style ST fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
graph TD subgraph "Growing Phase" A["Active components\npay for edges"] --> B["Edge cost met\nโ add edge"] B --> C["Union Find\nmerge"] C --> D{"All pairs\nconnected?"} D -->|"no"| A D -->|"yes"| E["Reverse Delete"] end E --> F["Pruned Forest"] style A fill:#fff9c4,stroke:#f57f17,stroke-width:3px style B fill:#fff9c4,stroke:#f57f17,stroke-width:3px style C fill:#fff9c4,stroke:#f57f17,stroke-width:3px style D fill:#fff9c4,stroke:#f57f17,stroke-width:3px style E fill:#fff9c4,stroke:#f57f17,stroke-width:3px style F fill:#ffccbc,stroke:#bf360c,stroke-width:3px
graph TD A["5 3 1 4 2"] --> B["nth_element\nmid=2"] B --> C["1 2 โ 3 โ 4 5"] C --> D["Left: {1,2}"] C --> E["Right: {4,5}"] style B fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px