¿Cuál es la complejidad temporal de eliminar el borde de la estructura de la lista de adyacencia en un gráfico?

Me temo un poco que me faltan algunos detalles importantes en su pregunta, porque es bastante simple y no puedo ver una razón para usar Quora en lugar de una rápida búsqueda en Google. De todos modos, esta es mi respuesta:

Desea eliminar el borde (a, b) (OT: ¿qué tiene de malo todo esto (u, v)? ¿Por qué estamos usando notación con dos letras casi idénticas?).

En un gráfico desordenado, primero debe encontrar el vértice ‘a’ . Big O de esta operación depende de su implementación, debe ser O (1) u O (log | V |) (constante para hashtable y logarithmic para algún tipo de árbol).

Entonces quitas el borde. Esta operación depende de su implementación una vez más, varía entre O (a (| E |)) (número de bordes de ‘a’ si necesita copiarlos todos excepto (a, b)) y O (1) (algunos tipo de tabla hash de nuevo). Entonces haga lo mismo para (b, a), que realmente no cambia Big O de esta operación.

Para el gráfico ordenado, usted hace exactamente lo mismo excepto eliminar (b, a).

Como puede ver, solo necesita multiplicar el tiempo de dos operaciones que propuse y obtuvo respuesta para su implementación.

Espero que de alguna manera logré responder tu pregunta y no me perdí algo …

Complejidad lineal del tiempo.

Suponga que desea eliminar el borde AB:

  1. Primero debe encontrar la lista list_A de bordes adyacentes a A -> complejidad de tiempo constante porque list_A = lists_vector [A] (lists_vector es el vector de las listas de adyacencia)
  2. Necesita encontrar el nodo del borde a B en list_A -> complejidad de tiempo lineal (porque necesita iterar sobre la lista)
  3. Elimine este borde de list_A -> complejidad de tiempo constante (actualización de un puntero)

Tan lineal

More Interesting

Cómo escribir mi propio algoritmo de cifrado / descifrado

Yoshua Bengio: ¿Puede el aprendizaje profundo encontrar un nuevo algoritmo de clasificación?

Cómo determinar si un conjunto dado se puede dividir en dos subconjuntos o más de modo que la suma de los elementos en esos subconjuntos sea la misma

Como principiante, ¿debería leer el libro CLRS antes de comenzar con Interviewbit?

¿Qué es un código de clasificación?

¿Por qué Python es realmente más lento en algunos cálculos que Java? Las profundidades recursivas también son limitadas.

¿Cuáles son algunas características de los datos de imágenes faciales que se pueden utilizar para alimentar los algoritmos de aprendizaje automático?

¿Qué estoy haciendo mal al determinar el big-O de estas funciones Java?

¿Cuál es la complejidad temporal del algoritmo babilónico para encontrar la raíz cuadrada?

¿Necesito conocer algoritmos de aprendizaje automático para asegurar un trabajo como analista de datos?

¿Qué algoritmo es bueno para fusionar notificaciones similares en los servicios sociales?

¿Debo aprender a clasificar?

15 personas se sentarán en una fila de 15 sillas. ¿Cómo calculo cuántos planes de asientos se pueden hacer, donde dos planes de asientos se consideran iguales si dos planes comparten cuádruples adyacentes? o ¿Cómo puedo crear un algoritmo eficiente para encontrar límites inferiores para 15 o menos personas?

¿Cuál es la diferencia entre un algoritmo y un procedimiento?

¿Qué tipo de clasificación es esta?