Realmente no. Pero más o menos.
Para vencer a [lo que podría decir con] O (n), no tendríamos que mirar ciertos elementos. Necesitaríamos alguna propiedad de pedido para descartar categóricamente grandes secciones del conjunto de datos, y no veo ninguna forma de hacerlo en un conjunto hash.
Sin embargo, en verdad, el problema simplemente no está bien definido. Eso posiblemente sugiere un malentendido de la gran O de su parte. [EDITAR: El problema ahora se ha aclarado para indicar que n es el número de elementos en el conjunto de hash.]
Hay dos soluciones razonables para este problema:
- Si [matemática] p> 3 [/ matemática] es primo, ¿cómo se puede demostrar que si [matemática] p ^ k + p ^ l + p ^ m = n ^ 2 [/ matemática] tiene soluciones naturales [matemática] k , l, m, n [/ math], [math] p + 1 [/ math] es divisible por [math] 8 [/ math]?
- ¿Es solucionable la conjetura de Collatz?
- Usando divide y vencerás para s = (a ^ n), a> 0 y (n = 2 ^ k) a) muestra que el número de multiplicación usando recurrencia M (n) = M (n / 2) +1 para n> 1 y M (1) = 0 es?
- Si a y b son números enteros coprimos positivos, ¿puede mostrar que el único MCD posible de [matemáticas] a + b [/ matemáticas] y [matemáticas] a ^ 2 + b ^ 2 [/ matemáticas] son 1 y 2?
- ¿Puede probar que [matemáticas] k [/ matemáticas] divide [matemáticas] \ binom {kn} {n} [/ matemáticas] con [matemáticas] n, k> 0 [/ matemáticas]?
- Extraiga todos los valores del conjunto de hash y busque el más cercano a X.
- Redondea X a un número entero (si aún no lo está) y luego marca X-1, X + 1, X-2, X + 2, …
La primera solución es O (h), donde h es el número de elementos en su conjunto de hash.
La segunda solución es O (abs (Xc)), donde c es el valor más cercano a X.
Cuando dijiste O (n), ¿qué estabas definiendo como n? Estoy siendo un poco quisquilloso aquí, pero he encontrado que un montón de personas no entienden esto. N debe tener un significado . Muchas personas describirían la segunda solución como O (n), pero no es el mismo tiempo de ejecución que la primera (que casi todos definirían como O (n)). No son directamente comparables.
La primera solución podría ser preferible en pequeños conjuntos de datos. Pero si nuestro conjunto de datos es muy grande (por ejemplo, contiene la mayor parte del rango permitido de entradas), podríamos preferir el segundo.