Las 8 principales preguntas y respuestas sobre la entrevista de algoritmos (Actualizado para 2019)

Tabla de contenido:

Anonim

Introducción al algoritmo Entrevista Preguntas y respuestas

Preparación para una entrevista de trabajo en Algoritmo. Estoy seguro de que desea conocer las preguntas y respuestas más comunes de la entrevista de algoritmo de 2019 que lo ayudarán a descifrar la entrevista de algoritmo con facilidad. A continuación se muestra la lista de las principales preguntas y respuestas de la entrevista de algoritmos en su rescate.

A continuación se muestra la lista de preguntas y respuestas de la entrevista del algoritmo de 2019, que se pueden hacer durante una entrevista para obtener una experiencia más fresca.

1.Escribe un algoritmo para invertir una cadena. Por ejemplo, si mi cadena es "vahbunA", entonces mi resultado será "Anubhav".

Responder:
Paso 1: Comience
Paso 2: Toma dos variables I y j.
Paso 3: j se posiciona en el último carácter (Técnicamente podemos hacer esto por longitud (cadena) -1)
Paso 4: me posiciona en el primer Carácter (podemos hacer esto por cadena (0))
Paso 5: Cadena (i) se intercambia Cadena (j) Paso 6: Incremente I en 1
Paso 7: Incrementa J en 1
Paso 8: Si 'I'> 'j', vaya al paso 3
Paso 9: detente

2.Escriba un algoritmo para insertar un nodo en la lista vinculada suponiendo que la lista vinculada ya esté ordenada.

Responder:
Caso 1: si la lista vinculada está vacía, haga el nodo como encabezado y devuélvalo.
Código: New_node-> Next = head;
head = New_node
Caso 2: Insertar nodo en el medio
Código: Mientras (P! = Insert_position)
(
P = p-> Siguiente;
)
Store_next = P-> Siguiente;
P-> Siguiente = Nuevo_Nodo;
New_Node-> Next = Store_next;
Caso 3: inserte un nodo al final
Código: Mientras (P-> siguiente! = Nulo)
(
P = P-> Siguiente;
)
P-> Siguiente = Nuevo_Nodo;
Nuevo_Nodo-> Siguiente = nulo;

3.Escribe un algoritmo para ordenar burbujas.

Respuesta: Vamos a implementar el algoritmo de clasificación de burbujas a través del lenguaje C.
Paso 1: repita los pasos 2 y 3 para I = 1 a 10
Paso 2: Establecer j = 1
Paso 3: Repita mientras j <= n (Donde n es el número de elementos en la matriz)
(Si a (i) <a (j) Luego intercambie a (i) y a (j) (Fin de if))
Establecer j = j + 1
(Fin del bucle interno) (Fin del bucle externo del paso 1) Paso 4: Salga

4.Escribe un algoritmo para Heapsort.

Responder:
Paso 1: Dado que el árbol satisface la propiedad max-Heap, el elemento más grande se almacena en el nodo raíz.
Paso 2: elimine el elemento raíz y colóquelo al final de la matriz (enésima posición) coloque el último elemento del árbol (montón) en el lugar vacante.
Paso 3: reduzca el tamaño del montón en 1 y vuelva a amontonar el elemento raíz para que tengamos el elemento más alto en la raíz.
Paso 4: el proceso se repite hasta que se ordenan todos los elementos de la lista.

5.Escribe un algoritmo para la búsqueda de Fibonacci.

Responder:
Paso 1: A es sorted_int_array;
Paso 2: toma una variable c
Paso 3: Fib2 = 1, Fib1 = 1 y fib = 2
Paso 4: Mientras fib <n do (donde n es el número de elemento en la lista)
Paso 5: asigne la variable
Fib2 = Fib1
Fib1 = Fib
Fib = Fib1 + Fib2
Terminar mientras
Paso 6: Asigne el valor a la variable temporal I = 0, offset = 0;
Paso 7: Mientras Fib> 1 do
I = min (desplazamiento + Fib2, n)
Si c <A (i) entonces
Fib = Fib2
Fib1 = Fib1 - Fib2
Fib2 = Fib - Fib1
De lo contrario, si c> A (i) entonces
Fib = Fib1;
Fib1 = Fib2;
Fib2 = Fib - Fib1;
Offset = I;
Más
Volver verdadero
Terminara si
Terminar mientras
Falso retorno

6.Escribe un algoritmo de operación push y pop en la pila.

Respuesta: para la operación de empuje
Procedimiento Agregar (Artículo, Pila, N, Arriba)
(Inserte 'Elemento' en la 'pila' de tamaño máximo 'n', la parte superior es el número de elementos actualmente en 'Pila')
Paso 1: ¿Check Stack está desbordado?
Si (Superior> = N)
La pila está desbordada
Salida
Paso 2: si la pila no se desborda, incremente el bucle
Superior = Superior + 1
Paso 3: inserta el elemento
Pila (Arriba) = Artículo
Paso 4: Salga
Para la operación POP
Paso 1: la pila de verificación está bajo flujo significa vacío
Si (Superior <= 0)
La pila está vacía.
Salida
Paso 2: si la pila no está bajo flujo, elimine el elemento
Elemento = pila (arriba) Paso 3: disminuir el valor superior
Superior = Superior - 1
Paso 4: Salga

7.Escribe un algoritmo para la operación de inserción y eliminación en la cola.

Respuesta: para la operación de inserción
Procedimiento agregar (cola, F, R, N, elemento)
(Esto insertará 'item' en la 'cola' después de 'R' (raro) donde 'n' es el tamaño de la matriz).
Paso 1: Comprobar que la cola está desbordada significa que la cola está llena
Si (R> = N)
La cola está llena
Salida
Paso 2: si la cola no se desborda, incremente el ciclo
R = R + 1
Paso 3: inserta un elemento en la cola
Cola (R) = artículo
Paso 4: Configuración del puntero 'F' (frontal)
Si (F = 0)
F = 1
Salida
Para la operación de eliminación en la cola
Procedimiento de eliminación (cola, F, R, elemento)
(Eliminar 'elemento' de la 'pila', 'F' es el puntero frontal y 'R' es el puntero final raro.
Paso 1: Comprobar que la cola está bajo flujo significa vacío
Si (R <= 0)
La cola está vacía
Salida
Paso 2: eliminar un elemento de la cola
Elemento = cola (F) Paso 3: Incrementar el valor de F
F = F + 1
Paso 4: Verificando la cola vacía
Si (F> R)
Entonces F = R = 0
Salida

8.Escribe un algoritmo para encontrar la profundidad mínima de un árbol binario.

Respuesta: Deje que "nodo" sea el puntero al nodo raíz de un subárbol.
Paso 1: si el nodo es igual a Nulo, devuelve 0
Paso 2: si el nodo es un nodo hoja, devuelva 1.
Paso 3: recursivamente, encuentre la profundidad mínima del subárbol izquierdo y derecho, deje que quede la profundidad mínima y la profundidad mínima derecha respectivamente.
Paso 4: Para obtener la altura mínima del árbol enraizado en el nodo, tomaremos un mínimo de profundidad mínima izquierda y profundidad mínima derecha y 1 para el nodo raíz.
Programa:
Procedimiento minDepth (Node)
Paso 1: if (root = null)
Volver 0
Paso 2: if (raíz -> Izquierda = Nulo y raíz -> derecha = Nulo)
Volver 1
Paso 3: si (root -> left no es nulo)
Devuelve minDepth (root -> right) + 1;
Paso 4: If (root -> Right no es nulo)
Retorno minDepth (raíz -> izquierda) + 1;
Paso 5: devuelve min (minDepth (root -> left), minDepth (root -> right)) + 1

Artículos recomendados

Esta ha sido una guía completa de las preguntas y respuestas de la entrevista de algoritmo para que el candidato pueda combatir estas preguntas de entrevista de algoritmo fácilmente. También puede consultar los siguientes artículos para obtener más información:

  1. Preguntas y respuestas de la entrevista de aprendizaje automático
  2. Guía útil sobre preguntas de la entrevista de Big Data
  3. Preguntas importantes de la entrevista de Elasticsearch
  4. Preguntas y respuestas útiles sobre la entrevista de Apache PIG