Método 1:
Necesitará tener suficiente espacio en el piso para hacer una pila separada de 50 calcetines, 2 filas de 25 cada una. También necesitará otra pieza de espacio en el piso en el que pueda poner calcetines examinados y descartados (no tirar a la basura, solo para no considerar más en su algoritmo de clasificación). Esto supone que los 600 calcetines se pueden organizar en pares únicos (por cada calcetín, hay un único calcetín a juego).
Toma el primer calcetín. Póngalo en la fila superior de 25, ranura # 1. Como solo tienes un calcetín, aún no puedes tener un par.
- ¿Puede crear un puntero 2D dinámico que almacene elementos ingresados por el usuario como una matriz y lo muestre antes y después de liberarlo?
- ¿Debería centrarme en el aprendizaje de algoritmos y estructuras de datos en profundidad, o aprender una habilidad como desarrollo web o desarrollo móvil usando Nanodegree?
- ¿Cuál es la conclusión del algoritmo de Dijkstra?
- ¿Es correcto: 100n + log (n) = O (n + (log (n)) ^ 2)?
- Quiero aprender más sobre algoritmos, pero no sé por dónde empezar. ¿Me puede dar algunas instrucciones o consejos? Gracias.
Toma un segundo calcetín. ¿Coincide con el primer calcetín? Si es así, colóquelo en la fila inferior de 25, ranura n. ° 1. Si no, colóquelo en la fila superior de 25, ranura # 2.
Toma el tercer calcetín. ¿Coincide con el primer calcetín? Si es así, colóquelo en la fila inferior de 25, ranura n. ° 1. ¿Coincide con el segundo calcetín? Si es así, colóquelo en la fila inferior de 25, ranura # 2. De lo contrario, colóquelo en la fila superior de 25, ranura # 3.
Cuando tenga 25 calcetines en la fila superior, deje de agregar calcetines nuevos (sin igual) a la fila superior. Cualquier calcetín nuevo que coincida con uno de sus 25 va a la fila inferior en el índice apropiado. Si no coincide con ningún calcetín en la fila superior, colóquelo en la pila de descarte para que el perro se siente porque todavía está caliente de la secadora.
Repita hasta que tenga 25 pares de calcetines, luego pare . Como máximo, revisará cada calcetín en la pila de 600 una vez, y tendrá que buscar en su pequeña lista (<25 calcetines) una vez por calcetín de entrada. El peor de los casos es cuando los primeros 25 calcetines que tiras son todos únicos (sin coincidencias), y sus pares coincidentes son los últimos 25 calcetines que miras. Si tiene suficiente espacio en el piso, no necesita limitar sus 2 filas a 25 pares, sus filas tienen 300 calcetines de ancho, pero eso significa más búsqueda de cada calcetín que retire de la pila. Puede que no valga la pena ampliar sus filas para evitar descartar un calcetín para el que puede encontrar una coincidencia posterior (estoy seguro de que hay una respuesta analítica a esto que alguien más inteligente que yo puede proporcionar). Además, ¿quién tiene tanto espacio en el piso?
Método 2:
Tira todos tus calcetines. Ve a Costco. Compre un paquete gigante de 600 calcetines completamente idénticos. ¡Problema resuelto!