Necesito almacenar conjuntos de elementos de tipo a. El tipo a está parcialmente ordenado, por lo que comparar y puede devolver menor, mayor, igual o incomparable.
Un problema con las tablas hash es que dos elementos iguales se pueden representar de manera diferente, y no tengo acceso a una función hash coherente con la igualdad.
Comparar dos elementos puede ser un proceso largo, por lo que sería interesante minimizar las comparaciones. Si es necesario, es posible memorizar llamadas al operador de comparación. Ahora me doy cuenta de que solo necesitaré almacenar antichains (o supongamos que sí). Más precisamente, las operaciones que tendré que realizar son las siguientes:
- Eliminar un elemento de la antichain;
- Intenta agregar un elemento. Si el elemento es más pequeño que un miembro, no lo agregue, de lo contrario, agréguelo y elimine todos los elementos más pequeños.
También puedo vincular cada elemento con dos enteros, de modo que si sé que e , entonces saber me da instantáneamente . Por supuesto, no significa a \ not <b ... Encontrar límites enteros es una operación relativamente barata en comparación con una comparación completa de elementos.i 3 < b < i 4 i 2 < i 3 a < b i 2 ≮ i 3