Estructura de datos 2: comparación rápida
Estructuras de datos — Una comparación rápida (Parte 2)
Estructuras de datos: una comparación rápida (Parte 2) Estructuras de datos 2: Comparación rápida

Comparación entre diferentes estructuras de datos - bigochheatsheet.com Comparación entre diferentes estructuras de datos - bigochheatsheet.com
Cada estructura de datos tiene su propia forma diferente o un algoritmo diferente para ordenar, insertar, buscar, etc. Esto se debe a la naturaleza de la estructura de datos. Hay algoritmos que se utilizan con una estructura de datos específica, donde otros no se pueden utilizar. Cada estructura de datos tiene sus propios métodos o algoritmos diferentes para ordenar, insertar, buscar, etc. Esto se debe a la naturaleza de la estructura de datos. Algunos algoritmos tienen estructuras de datos específicas que otros algoritmos no pueden utilizar.
Cuanto más eficiente y adecuado sea el algoritmo, más optimizada tendrá la estructura de datos. Cuanto más eficiente y apropiado sea el algoritmo, más estructuras de datos optimizadas se obtendrán.
Lo más probable es que dependa de los algoritmos integrados que se utilizan con las estructuras de datos en su idioma. Estos algoritmos están muy bien optimizados y probados en batalla. Lo más probable es que dependa de algoritmos integrados que funcionen con estructuras de datos en su idioma. Estos algoritmos están bien optimizados y probados.
matriz de matrices
ventajas Ventajas
-
Fácil de crear, Fácil de usar Fácil de crear, fácil de usar
-
Indexación directa: O(1) Indexación directa: O(1)
-
Acceso secuencial: O(N) Acceso secuencial: O(N)
contras Desventajas
-
Clasificación: O(NLogN) Clasificación: O(NLogN)
-
Buscando: O(N) y O(LogN) si está ordenado Buscando: O(N) y O(LogN) si está ordenado
-
Insertar y eliminar: O(N) debido al cambio de elementos.
lista enlazada lista enlazada
ventajas Ventajas
-
Insertar y eliminar: O(1). Insertar y eliminar: O(1)
-
Acceso secuencial: O(N) Acceso secuencial: O(N)
Insertar y eliminar operaciones se refiere a la operación en sí, ya que es posible que necesite acceder secuencialmente a todos los nodos hasta encontrar el nodo que está buscando.
Insertar y eliminar es mucho más fácil con una lista doblemente enlazada.
contras Desventajas
-
Sin acceso directo; Sólo acceso secuencial. Sin acceso directo; Sólo acceso secuencial.
-
Buscando: O(N) Buscando: O(N)
-
Clasificación: O(NLogN) Clasificación: O(NLogN)
Pilas y colas Pilas y colas
Las pilas y colas tienen propósitos muy específicos. Las pilas tienen una estructura de datos de último en entrar, primero en salir (LIFO), mientras que las colas son de primero en entrar, primero en salir (FIFO). Las pilas y colas tienen propósitos muy específicos. La pila es una estructura de datos de último en entrar, primero en salir (LIFO), mientras que la cola es una estructura de datos de primero en entrar, primero en salir (FIFO).
ventajas Ventajas
- Empujar/Agregar: O(1)
- Pop/Quitar: O(1)
- Vistazo: O(1)
Contras
Si estás intentando hacer algo más con pilas o colas, como si preguntas ¿cómo puedo sacar un elemento del medio? Entonces, deberías mirar una estructura de datos diferente. ¿Si desea hacer algo más con una pila o cola, como si desea saber cómo extraer un elemento del medio? Entonces deberías mirar las diferentes estructuras de datos.
Tablas hash. tabla hash
ventajas Ventajas
-
Insertar y eliminar: O(1) + Hashing & Indexing (amortizado). Insertar y eliminar: O(1) + Hashing & Indexing (amortizado).
-
Acceso directo: O(1) + Hashing e Indexación. Acceso directo: O(1) + Hash e indexación.
Se necesita un poco de procesamiento para el hash y la indexación. Pero lo bueno de esto es que es la misma cantidad de procesamiento cada vez, incluso si la tabla hash se vuelve muy grande. El hash y la indexación requieren algo de procesamiento. Pero la ventaja de esto es que el número procesado cada vez es el mismo, incluso si la tabla hash se vuelve muy grande.
Cuando la tabla hash se llene, aumentará su tamaño. Y, cuando la cantidad de depósitos llenos es mucho menor que el tamaño de la tabla hash, su tamaño disminuirá. Ambas operaciones tienen una complejidad de O(N). Es por eso que la inserción y eliminación amortizan O(1). Cuando la tabla hash se llena, aumenta su tamaño. Cuando la cantidad de depósitos llenos es mucho menor que el tamaño de la tabla hash, se reduce su tamaño. La complejidad de ambas operaciones es O(N). Es por eso que la inserción y eliminación requieren una amortización O(1).
contras Desventajas
-
Algunos gastos generales requieren un poco más de espacio en la memoria que las matrices. Algunos gastos generales requieren un poco más de espacio en la memoria que las matrices.
-
La recuperación de elementos no garantiza un orden específico. La recuperación de elementos no garantiza un orden específico.
-
Búsqueda de un valor (sin saber su clave). Buscando un valor (sin saber su clave).
conjuntos conjuntos
ventajas. Ventajas
- Comprobación de membresía; valorar la existencia. Comprobación de membresía; valorar la existencia.
*Evita duplicados evita duplicaciones
La complejidad de comprobar si un valor contenido en el conjunto depende de la estructura de datos subyacente utilizada para implementar el conjunto.
En C++, utiliza un árbol de búsqueda binario (probablemente un árbol negro rojo; un tipo de árbol de búsqueda binario autoequilibrado). Entonces, la complejidad sería O (LogN) y O (N) si el árbol está desequilibrado. La complejidad es O(LogN) si el árbol está desequilibrado, la complejidad es O(N)
En Java, la clase HashSet implementa la interfaz Set utilizando la estructura de datos de la tabla hash. Entonces, la complejidad sería la misma que la de las tablas hash (ver arriba). En Java, la clase HashSet implementa la interfaz Set utilizando una estructura de datos de tabla hash. Por lo tanto, la complejidad será la misma que la de una tabla hash (ver arriba).
Contras
Los conjuntos están intencionalmente limitados. No hay mucho que puedas hacer con ellos. Entonces, son terribles en casi todo lo demás. Las colecciones están limitadas intencionalmente. No hay nada que puedas hacer al respecto. Entonces, son terribles en casi todos los demás sentidos.### Árboles de búsqueda binaria (BST)
Ventajas
- Insertar y eliminar
- Velocidad de Acceso
- Mantiene el orden ordenado; La recuperación de elementos está en orden.
La complejidad de la inserción, eliminación y acceso sería O(LogN) y O(N) si el árbol no está equilibrado.
Contras
*Algunos gastos generales por su creación y gestión.
montones
Los montones son un tipo de árbol binario ideal para colas de prioridad. Los montones son un tipo de árbol binario ideal para colas de prioridad.
Ventajas
- Buscar mínimo/Buscar máximo: O(1)
- Insertando: O(LogN)
- Eliminar mínimo/eliminar máximo: O(LogN)
Contras
- Búsqueda y eliminación: O(N)
Al buscar y eliminar tendremos que escanear todos los elementos ya que no garantizan un orden concreto, a diferencia de BST.
La eliminación requiere recorrer todo el árbol para acceder al elemento primero y luego eliminarlo, donde la operación de eliminación en sí requiere O (LogN).
Texto original: https://medium.com/omarelgabrys-blog/data-structures-a-quick-comparison-6689d725b3b0
What to read next
Want more posts about Algorithms?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Algorithms?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home