Caso real
Cómo lo dice la documentación
La documentación de las colecciones de la biblioteca estándar de Rust pone los costos con su condición: un asterisco (*) para amortizado y una virgulilla (~) para esperado. Agregar a un Vec (un array que crece) es O(1)*; buscar en un HashMap (un diccionario por clave) es O(1)~. Un BTreeMap (un diccionario ordenado) busca en O(log n), en el peor caso.
Leer bien esa tabla es la primera habilidad de esta ruta.
Úsala para decidir: cuando un servicio exige un tiempo máximo por petición, importa qué condición lleva cada costo.