Articles of algoritmos

¿Cuál es la diferencia entre la profundidad y la altura del árbol?

Esta es una pregunta simple de la teoría de algoritmos. La diferencia entre ellos es que en un caso se cuenta el número de nodos y en otro número de bordes en el camino más corto entre el nodo raíz y el nodo concreto. ¿Cual es cual?

Escriba un progtwig para encontrar 100 números más grandes de una matriz de mil millones de números

Hace poco asistí a una entrevista en la que me pidieron “escribir un progtwig para encontrar los 100 números más grandes de una serie de mil millones de números”. Solo pude dar una solución de fuerza bruta que consistía en ordenar la matriz en complejidad de tiempo O (nlogn) y tomar los últimos 100 números. […]

¿Cuándo se usa cada algoritmo de clasificación?

¿Cuáles son los casos de uso cuando se prefiere un algoritmo de clasificación particular sobre otros – merge sort vs quick sort vs heap sort vs intro sort , etc.? ¿Existe una guía recomendada para usarlos según el tamaño, el tipo de estructura de datos, la memoria disponible y la memoria caché, y el rendimiento […]

¿Cómo puedo obtener toda la combinación posible de un subconjunto?

Considere esta List List data = new List(); data.Add(“Text1”); data.Add(“Text2”); data.Add(“Text3”); data.Add(“Text4”); El problema que tuve fue: ¿cómo puedo obtener cada combinación de un subconjunto de la lista? Un poco como esto: #Subset Dimension 4 Text1;Text2;Text3;Text4 #Subset Dimension 3 Text1;Text2;Text3; Text1;Text2;Text4; Text1;Text3;Text4; Text2;Text3;Text4; #Subset Dimension 2 Text1;Text2; Text1;Text3; Text1;Text4; Text2;Text3; Text2;Text4; #Subset Dimension 1 Text1; […]

Encuentra los N elementos principales en una matriz

¿Cuál sería la mejor solución para encontrar elementos N superiores (por ejemplo, 10) en una lista desordenada (de, por ejemplo, 100)? La solución que surgió en mi cabeza fue 1. ordenarla usando clasificación rápida, 2. obtener los 10 mejores. ¿Pero hay alguna mejor alternativa?

Cómo implementar un sistema de tags

Me preguntaba cuál es la mejor manera de implementar un sistema de tags, como el que se usa en SO. Estaba pensando en esto, pero no puedo encontrar una buena solución escalable. Estaba pensando en tener una solución básica de 3 tablas: tener una tabla de tags , una tabla de articles y una tabla […]

¿Cómo crear combinaciones de varios vectores sin bucles de encoding en C ++?

Tengo varios datos que se ven así: Vector1_elements = T,C,A Vector2_elements = C,G,A Vector3_elements = C,G,T ….. up to … VectorK_elements = … #Note also that the member of each vector is always 3. Lo que quiero hacer es crear toda la combinación de elementos en Vector1 a través de VectorK. Por lo tanto, al […]

Diseñe un algoritmo eficiente para ordenar 5 claves distintas en menos de 8 comparaciones

Diseñe un algoritmo eficiente para ordenar 5 claves distintas, muy grandes, con menos de 8 comparaciones en el peor de los casos. No puedes usar el orden de radix.

Dadas dos matrices ayb. Encuentre todos los pares de elementos (a1, b1) tales que a1 pertenece a la matriz A y b1 pertenece a la matriz B cuya sum a1 + b1 = k

Estoy buscando la solución del siguiente algoritmo con una mínima complejidad de tiempo y espacio. Dadas dos matrices ayb, encuentre todos los pares de elementos (a1, b1) tales que a1 pertenece a la matriz A y b1 pertenece a la matriz B cuya sum a1 + b1 = k (cualquier entero). Pude encontrar el enfoque […]

La intersección de dos matrices ordenadas

Dadas dos matrices ordenadas: A y B El tamaño de la matriz A es La y el tamaño de la matriz B es Lb ¿Cómo encontrar la intersección de A y B ? Si La es mucho más grande que Lb , ¿habrá alguna diferencia para el algoritmo de búsqueda de intersección?