Complejidad Algorítmica y Estructuras de Datos

Enviado por Chuletator online y clasificado en Matemáticas

Escrito el en español con un tamaño de 3,37 KB

Acceso a la Cabeza y a la Cola

(Solo a la cabeza)

Tipo de ListaInserción CabezaInserción ColaBorrado CabezaBorrado ColaBúsqueda
SimpleConstanteCte/LinealConstanteLinealLineal
DobleConstanteCte/LinealConstanteCte/LinealLineal
CircularConstanteCte/LinealConstanteLinealLineal
Circular DobleCte/DependeConstanteConstanteConstanteLineal
VectorLinealConstanteLinealConstanteLineal
ABBLogarítmicoLogarítmicoLogarítmicoLogarítmicoLogarítmico


Complejidad de Algoritmos de Ordenación

AlgoritmoMejor CasoPeor CasoMemoria Adicional
InserciónnN2No
SelecciónN2N2No
HeapSortn*log2(n)n*log2(n)No
MergeSortn*log2(n)n*log2(n)
QuickSortn*log2(n)N2No


Comparativa de Estructuras de Datos

Repetir ElementosElementos OrdenadosEstructura InternaCoste InserciónCoste Búsqueda
TreeSetNoÁrbol Rojo-NegroLogarítmicaLogarítmica
HashSetNoNoTabla HashConstanteConstante


Distancia de Edición

Tenemos dos cadenas, y el objetivo es transformar una en la otra en el mínimo número de operaciones. Las operaciones que se utilizan pueden ser inserción, borrado y sustitución de símbolos (caracteres). La técnica que se utiliza para esto es la programación dinámica.


Algoritmos de Ordenación

  • El algoritmo de ordenación QuickSort, basado en la técnica de divide y vencerás, tiene un coste O(n2) en el peor caso.
  • El algoritmo MergeSort se basa en la técnica divide y vencerás.
  • El algoritmo de ordenación por inserción tiene un coste lineal en el mejor caso.
  • Los algoritmos de ordenación HeapSort y MergeSort tienen en común un coste O(nlog(n)) en el peor caso.
  • Una versión mejorada del algoritmo de ordenación selección es el HeapSort.


Notación Big O

O(1) (const) ⊂ O(log(log n)) (sublog) ⊂ O(log n) (log) ⊂ O(loga>1(n)) (log) ⊂ O(√n) (sublineal) ⊂ O(n) (lineal) ⊂ O(n log n) (lineal-log) ⊂ O(n2) ... (polin) ⊂ O(na>2) (polin) ⊂ O(2n) (exponencial) ⊂ O(n!) (superexp) ⊂ O(nn) (superexp)


Complejidad de un Bucle 'for'

for = inicialización + veces * (condición cierto + cuerpo + incremento) + condición falsa

Entradas relacionadas: