Icono
|Estudiar
TemarioEstructuras de datos y algoritmos básicosTema 2

Tema 2

Métodos de ordenamiento

Patrón de examen

En competencia siempre usa std::sort. Implementa merge sort solo si necesitas contar inversiones u operaciones durante el merge.

Explicación

Algoritmos de ordenamiento

AlgoritmoComplejidadEstableUso
BurbujaO(n²)Solo para entender conceptos
SelecciónO(n²)NoSolo para entender conceptos
InserciónO(n²)Bueno para n pequeño o casi ordenado
Merge SortO(n log n)Cuando se necesita estabilidad
Quick SortO(n log n) avgNoRápido en práctica
std::sortO(n log n)NoUsar siempre en competencia

Regla en olimpiadas: usa std::sort

Nunca implementes tu propio sort en competencia. std::sort es optimizado y O(n log n) garantizado en la STL de C++.

Ordenamiento parcial: nth_element

Para encontrar el k-ésimo elemento sin ordenar todo: O(n) en promedio.

nth_element(v.begin(), v.begin()+k, v.end());
cout << v[k]; // k-ésimo más pequeño